試験公開中

このエントリーをはてなブックマークに追加

プログラミングClojure 第2版

オーム社

3,740円 (3,400円+税)

プログラミング言語Clojureの実践的な解説書の改訂2版

関連サイト

本書の関連ページが用意されています。

内容紹介

Clojure(クロージャ)は、関数型プログラミングや並行プログラミングといった、強力なプログラミング手法をサポートするプログラミング言語です。進んだパラダイムと実用性との見事なバランス、オープンソースでの公開やJavaとの親和性の高さなどの特徴が挙げられます。

本書は、ユーザにとって必要な知識を十分に解説したClojureの実践的な解説書Pragmatic Bookshelf社の“Programming Clojure, 2nd edition”(Pragmatic Bookshelf, 2012)を翻訳したものです。基本部分から応用的なところまでを網羅的に解説しています。

書誌情報

  • 著者: Stuart Halloway, Aaron Bedra(著), 川合史朗(訳)
  • 発行日: (紙書籍版発行日: 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 お別れ

付録A エディタのサポート

付録B 参考資料

訳者あとがき

索引

著者・訳者について

Home 書籍一覧 プログラミングClojure 第2版 ▲ ページトップへ戻る