Arantium Maestum

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

2016-01-01から1ヶ月間の記事一覧

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につい…