Arantium Maestum

プログラミング、囲碁、読書の話題

Clojure

Clojure入門 - Project Eulerを解いてみる 問20

第二十問 100の階乗のすべての桁の数を足し合わせる。

Clojure入門 - Project Eulerを解いてみる 問19

第19問 20世紀の月初が日曜日だった回数を求める。

Clojure入門 - Project Eulerを解いてみる 問18

第十八問 ツリー状の数字の連なりを上から下へと下がっていって、たどった道筋の和の最大のものを求める。

Clojure入門 - Project Eulerを解いてみる 問17

第十七問 1から1000までの数を英語で書き出した時に使う文字数を算出。

Clojure入門 - Project Eulerを解いてみる 問16

第十六問。 21000のすべての桁の数の和を求める。

Clojure入門 - Project Eulerを解いてみる 問15

第十五問 20x20の格子の左上から右下まで、右か下に進み続けて到達する道筋の総数を求める。

Clojure入門 - Project Eulerを解いてみる 問14

第十四問 Collatz数列の話。nが偶数の場合はn/2、奇数の場合は3n+1に続き、最終的にn=1で収束する数列。百万までのnで最長のCollatz数列ができるものを求める。

Clojure入門 - Project Eulerを解いてみる 問13

第13問 50桁の数字を100個足しあわせて、上10桁が何になるかを求める。

Clojure入門 - Project Eulerを解いてみる 問12

500個以上の約数を持つ最小の三角数を求める。

Clojure入門 - Project Eulerを解いてみる 問11

第11問。 20×20の数字のグリッドの中から、縦横斜めのいずれかの方向で連続している四つの数字の商の最大値を求める。 以下ネタバレ。

lazy-seqでmapを書いてみる?

「?」が付いていることに注意していただきたい。 実際に書いてみるまでは、正直なめていた。 というのも、まずは(map inc (range 10))というような書き方・使い方を想定していたのだ。 一つの関数と一つのシーケンスを引数として、シーケンスに含まれる値に…

lazy-seqでrangeを書いてみる

range関数はPythonでもおなじみで、引数の扱いもほぼ同じ。ただし、引数なしで0から始まって無限に続く整数のシーケンスになるというのはPythonではitertools.countの挙動でrangeではできない。 Clojureのlazy-seqで書くにあたって、実は「遅延評価で無限に…

lazy-seqでrepeat, repeatedly, cycleを書いてみる

Clojureの勉強に4clojureというサイトを使っている。 プログラミングで比較的ポピュラーな公案形式の問題集である。 よく出てくる問題の形式として、Clojureの基本関数を他の基本関数を使って実装してみる、というものがある。いい機会なのでlazy-seqという…

Atom.ioでClojureを勉強するvimっぽい環境を整えてみる

とりあえずjdkやらleiningenやらは普通にインストールできたし、lein newごにょごにょしてプロジェクト作成してproject.cljやらcore.cljやらをいじって云々というフローには慣れてきたので、次にやっていきたいのがストレスフリーな開発環境の設定である。 P…

Clojure入門 - Project Eulerを解いてみる 問10

第十問 200万以下の素数の和。 以下ネタバレ

Clojure入門 - Project Eulerを解いてみる 問9

第九問 a < b < c, a + b + c = 1000, a**2 + b**2 = c**2を満たす数字を算出。いわゆるピタゴラス数。 以下ネタバレ

Clojure入門 - Project Eulerを解いてみる 問8

第八問 非常にでかい数字の連続した13桁の商の最大値を求める。 以下ネタバレ

Clojure入門 - Project Eulerを解いてみる 問7

第七問 10001番目の素数を算出する問題。 以下ネタバレ

Clojure入門 - Project Eulerを解いてみる 問6

第六問 和の二乗と二乗の和の差を求める問題。 以下ネタバレ

Clojure入門 - Project Eulerを解いてみる 問5

第五問 最小公倍数を求めるだけ。 以下ネタバレ

Clojure入門 - Project Eulerを解いてみる 問4

第四問 回文的な商の探索。 以下ネタバレ

Clojure入門 - Project Eulerを解いてみる 問3

第三問 大きい数字を素因数分解する話である。

Clojureで素数計算

Project Euler第三問から素数が関わってくる問題が始まる。 素数の計算といえば有名どころはエラトステネスの篩だろう。ただ、Haskellで間違った実装が数十年に渡って教えられていたりと、とくに無限に続くようなSieveはなかなかコードが理解しにくい。 Siev…

Clojure入門 - Project Eulerを解いてみる 問2

第二問 ネタバレ

Clojure入門 - Project Eulerを解いてみる 問1

Pragmatic Programmerのアドバイス 毎年一つ新しい言語を学ぶべし に従って、今年はClojureを勉強したい。(ちなみに去年はCをちゃんと勉強するというのが目標。ある程度は実践できた) 去年の最後の週から少しずつ文法などを見てみた。以前からSchemeについ…