プログラミングClojureを読む(その2)
目次
- 第1章 Getting Started
- 第2章 Clojureひとめぐり
- 第3章 ClojureからJavaを使う
- 第4章 シーケンスを使ったデータの統合
- 第5章 関数型プログラミング
- 第6章 並行プログラム
- 第7章 マクロ
- 第8章 マルチメソッド
- 第9章 現場のClojure やっと、最後まで読めた。 じっくり読むために、1歳半の子ををいろんな施設にあづけている時間に読んだので、それにかかった金額は1万円くらいか。 それに比べると、本の購入金額なんてあって無いようなもんだな… 独身とか学生の方々は時間のある今のうちにいろいろ好きなことをしておく事をオススメする。
それはさておき、感想を。 ClojureはJVMと心中することで本気のプロジェクトにも使えるLispだと感じた。 SchemeやCommon Lispに慣れている人からすると、quoteやquasiquoteの記号が違っていたり、再帰のコーディングには気を付けないといけなかったりでちょっと勝手が違う所も有るだろうけど、やはりS色とマクロが揃っているので、本質部分はLispだ。 全体を通してClojureのデザインのうまい所は、参照透過な部分とそうでないコード(副作用を持つコード)を意識して分離できる仕組を全部そろえている所だと思う。 さほど意識しなくても純粋な部分を明確に意識して保護できる。(Haskellが純粋関数型言語ならClojureは高純度関数型言語か) それを達成するために、処理系にはSTMやMVCCが組込まれていたり、データ構造の隅々までシーケンスで包みこんであったり、かなりの力が入っている。 やっぱり処理系がここまでしてくれれば、関数型プログラミングのメリットが十二分に発揮できるし、安心して関数型プログラミングができそうだ。 一般的にこの手のマイナー言語だが重要な書籍は原書(英語)でしか読めないところを、重要な本を日本語に翻訳して下さったshiroさんに感謝。