関連サイト
本書の関連ページが用意されています。
内容紹介
Clojure(クロージャ)は、関数型プログラミングや並行プログラミングといった、強力なプログラミング手法をサポートするプログラミング言語です。進んだパラダイムと実用性との見事なバランス、オープンソースでの公開やJavaとの親和性の高さなどの特徴が挙げられます。
本書は、ユーザにとって必要な知識を十分に解説したClojureの実践的な解説書Pragmatic Bookshelf社の“Programming Clojure, 2nd edition”(Pragmatic Bookshelf, 2012)を翻訳したものです。基本部分から応用的なところまでを網羅的に解説しています。
書誌情報
- 著者: Stuart Halloway, Aaron Bedra(著), 川合史朗(訳)
- 発行日: 2013-04-25 (紙書籍版発行日: 2013-04-25)
- 最終更新日: 2013-04-25
- バージョン: 1.0.0
- ページ数: 292ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: オーム社
対象読者
プログラマ全般 特に、Haskell、Erlang、 Lispなどに興味がある先進的なプログラマ
著者について
Stuart Halloway
Stuart Halloway は Clojure/core のメンバーであり、また Relevance の CTO を務める。Relevance での彼の日々は、世界征服の秘密プロジェクトを推めることと、アニメ『フィニアスとファーブ』を観ることで占められている。
Aaron Bedra
Aaron Bedra は Clojure/core のメンバーかつ Relevance, Inc. の開発者であった。Relevanceでは技術主任、講演者、著者といった役割を担っていた。Clojure コミュニティの活発なメンバーであり、Clojure 言語とサポートライブラリに多くのコードを貢献している。Clojure を使ったいくつもの商用プロジェクトの開発を率いてきた。現在は Grouponに勤務。
川合史朗
プログラマ・役者。Scheme Arts, LLC 代表。Scheme 処理系 Gauche や Allegro Common Lisp をツールとしたソフトウェアコンサルティングを行う。強みはネットワーク、CG コンテンツ制作プロセス、言語処理系、グラフデータベース。2002年までは Square USA Inc.にて CG 技術開発に従事し、映画『ファイナルファンタジー』やビデオゲームの制作にも参加。役者としては、ハワイ州ホノルルを拠点に地域劇場、短篇映画、TVCM などに出演。ADR Agency 所属。訳書に『ハッカーと画家』(オーム社、2005 年)、『Land of Lisp』(オライリージャパン、2013年)、共著に『プログラミング Gauche』(オライリージャパン、2008年)がある。
目次
第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 お別れ