内容紹介
プログラミング言語Clojureの実践的な解説書の改訂2版
Clojure(クロージャ)は、関数型プログラミングや並行プログラミングといった、強力なプログラミング手法をサポートするプログラミング言語です。進んだパラダイムと実用性との見事なバランス、オープンソースでの公開やJavaとの親和性の高さなどの特徴が挙げられます。
本書は、ユーザにとって必要な知識を十分に解説したClojureの実践的な解説書Pragmatic Bookshelf社の“Programming Clojure, 2nd edition”(Pragmatic Bookshelf, 2012)を翻訳したものです。基本部分から応用的なところまでを網羅的に解説しています。
このような方におすすめ
プログラマ全般
特に、Haskell、Erlang、 Lispなどに興味がある先進的なプログラマ
目次
主要目次
第2版への序文
第1版への序文
はじめに
第1章 さあ、始めよう
第2章 Clojure ひとめぐり
第3章 シーケンスを使ったデータの統合
第4章 関数型プログラミング
第5章 状態
第6章 プロトコルとデータ型
第7章 マクロ
第8章 マルチメソッド
第9章 Javaを使い倒す
第10章 アプリケーションを作る
付録A エディタのサポート
付録B 参考資料
訳者あとがき
索引
著者・訳者について
詳細目次
第2版への序文
第1版への序文
謝辞
はじめに
第1章 さあ、始めよう
1.1 なぜClojure なのか
1.2 Clojure を書き始めよう
1.3 Clojure ライブラリの探索
1.4 まとめ
第2章 Clojure ひとめぐり
2.1 フォーム
2.2 リーダマクロ
2.3 関数
2.4 var、束縛、名前空間
2.5 Java を呼び出す
2.6 フロー制御
2.7 for ループはどこにある?
2.8 メタデータ
2.9 まとめ
第3章 シーケンスを使ったデータの統合
3.1 すべてはシーケンスである
3.2 シーケンスライブラリを使う
3.3 遅延シーケンスと無限シーケンス
3.4 Java をシーカブルとして扱う
3.5 特定の構造に特化した関数
3.6 まとめ
第4章 関数型プログラミング
4.1 関数型プログラミングの概念
4.2 怠け者になろう
4.3 もっと怠け者の勧め
4.4 再帰ふたたび
4.5 まとめ
第5章 状態
5.1 並行性、並列性、そしてロック
5.2 ref とソフトウェアトランザクショナルメモリ
5.3 アトムを使った非協調的、同期的な更新
5.4 非同期な更新にエージェントを使う
5.5 var でスレッドごとの状態を管理する
5.6 Snake ゲーム
5.7 まとめ
第6章 プロトコルとデータ型
6.1 抽象化へ向けたプログラミング
6.2 インタフェース
6.3 プロトコル
6.4 データ型
6.5 レコード
6.6 reify
6.7 まとめ
第7章 マクロ
7.1 いつマクロを使うべきか
7.2 フロー制御のマクロを書く
7.3 マクロを簡単にする
7.4 マクロの分類学
7.5 まとめ
第8章 マルチメソッド
8.1 マルチメソッドのない暮らし
8.2 マルチメソッドを定義する
8.3 単純なディスパッチの先に
8.4 アドホックに分類を導入する
8.5 いつマルチメソッドを使うべきか
8.6 まとめ
第9章 Java を使い倒す
9.1 例外処理
9.2 整数との闘い
9.3 性能へ向けた最適化
9.4 Clojure でJava のクラスを作る
9.5 実践的な例
9.6 まとめ
第10章 アプリケーションを作る
10.1 Clojurebreaker ゲームのスコア計算
10.2 スコア関数をテストする
10.3 test.generative
10.4 インタフェースを作る
10.5 コードをデプロイする
10.6 お別れ
付録A エディタのサポート
付録B 参考資料
訳者あとがき
索引
著者・訳者について
続きを見る