いいかげんClojure

AndroidClojure書けると知って、Clojure熱が再燃したので購入。

プログラミングClojure

プログラミングClojure

1章まで読んだけど、Clojureよくできてるなぁ。まぁ、ひいき目があるのはいなめないけど。

ClojureLispリローテッドというのはしっくりくるなぁ。Lispのとっつきにくいところを修正したりしてる。「括弧の少ないLisp」というのは新しいよ。括弧が多いっていうこと認めてるんだもんなぁ。心の目で見れば見えませんとかいう禅問答から抜けだした感じ。

あとREPLもよくできている。関数定義のdefnって関数名と引数の間にメタデータとして関数の説明を文字列で記述できるんだけど、REPLでdocっていう関数(マクロ?)を使うとそれを表示してくれる。あと、REPLのutilとしてshowっていうのも用意されているんだけど、これだとJavaのクラスひいてくるとかよくできてる。

で、この本買ったのはCloureがJavaとのやりとりにおいて、どうやって状態の変更とかを実現しようとしているのかが気になったからなんだけど、そこでは関数型的な要素はきっぱり切り捨ててるのか。そういった潔さはいいね。

あと、この例題がすごいと思った。

user=>  (.start (new Thread (fn [] (println "Hello" (Thread/currentThread))))) 
nil
user=> Hello #<Thread Thread[Thread-3,5,main]>

JavaのThreadにClojureの無名関数渡して動くとか。



これは楽しいなぁ。