内容紹介
プログラマに新しい視点を与える7つのプログラミング言語
複数のプログラミング言語とパラダイムを使いこなせれば、プログラマとしての幅が広がります。本書は、1週間で1つの新しい言語を学ぶ“Seven Languages in Seven Weeks”を、Rubyの作者まつもとゆきひろ氏の監訳で発行するものです。言語の特徴を映画の登場人物になぞらえて、Ruby、Io、Prolog、Scala、Erlang、Clojure、Haskellという個性的な7つの言語を紹介。各言語の特性とそこにあるプログラミングパラダイムを、体験を通してものにしましょう。
このような方におすすめ
ソフトウェア開発者
プログラマ
学生
目次
主要目次
母に捧ぐ
謝辞
序文
第1章 はじめに
第2章 Ruby
第3章 Io
第4章 Prolog
第5章 Scala
第6章 Erlang
第7章 Clojure
第8章 Haskell
第9章 全体のまとめ
付録A 参考資料
監訳者あとがき
索引
著者・監訳者・訳者について
詳細目次
母に捧ぐ
謝辞
序文
第1章 はじめに
1.1 本書のねらい
1.2 この本で扱う言語
1.3 この本を買ってください
学ぶ姿勢を身につける
移行期のヒントとして
1.4 この本を買わないでください
単なるシンタックスの説明では終わらない
インストールガイドではない
リファレンスマニュアルではない
自分の限界に挑戦してみよう
1.5 終わりに
第2章 Ruby
2.1 簡単な歴史
まつもとゆきひろ氏(Matz)へのインタビュー
2.2 1日目:乳母を探す
クイックツアー
1日目で学んだこと
セルフスタディ1日目
2.3 2日目:空からふわふわ舞い降りる
関数の定義
配列
ハッシュ
コードブロックとyield
クラスの定義
Mixinを書く
モジュール,Enumerable,セット
2日目で学んだこと
セルフスタディ2日目
2.4 3日目:真剣な変更
オープンクラス
method_missingを使う
モジュール
3日目で学んだこと
セルフスタディ3日目
2.5 Rubyのまとめ
長所
短所
終わりに
第3章 Io
3.1 Ioとは
3.2 1日目:学校をさぼって,気ままに過ごす
手始めに
オブジェクト,プロトタイプ,継承
メソッド
リストとマップ
true,false,nil,singleton
Steve Dekorte氏へのインタビュー
1日目で学んだこと
セルフスタディ1日目
3.3 2日目:ソーセージキング
条件とループ
演算子
メッセージ
リフレクション
2日目で学んだこと
セルフスタディ2日目
3.4 3日目:パレードとその他の奇妙な場所
ドメイン固有言語
Ioのmethod_missing
並行性
3日目で学んだこと
セルフスタディ3日目
3.5 Ioのまとめ
長所
短所
終わりに
第4章 Prolog
4.1 Prologについて
4.2 1日目:素晴らしいドライバー
基本事実
基本的な推論と変数
穴埋め問題
ユニフィケーションその1
Prologの実用例
1日目で学んだこと
セルフスタディ1日目
4.3 2日目:Wapner判事まで15分
再帰
リストとタプル
リストと数値計算
ルールを両方向に使う
2日目で学んだこと
セルフスタディ2日目
4.4 3日目:ラスベガスをぶっとばせ
数独を解く
8クイーン問題
3日目で学んだこと
セルフスタディ3日目
4.5 Prologのまとめ
長所
短所
終わりに
第5章 Scala
5.1 Scalaについて
Javaとの親和性
盲目的に忠実というわけではない
Scalaの開発者Martin Odersky氏へのインタビュー
関数型プログラミングと並行性
5.2 1日目:丘の上の城
Scalaの型
式と条件
ループ
範囲とタプル
Scalaのクラス
クラスの拡張
1日目で学んだこと
セルフスタディ1日目
5.3 2日目:藪を刈り込む
var対val
コレクション
コレクションと関数
2日目で学んだこと
セルフスタディ2日目
5.4 3日目:快刀乱麻を断つ
XML
パターンマッチング
並行性
並行処理の実例
3日目で学んだこと
セルフスタディ3日目
5.5 Scalaのまとめ
長所
短所
終わりに
第6章 Erlang
6.1 Erlangについて
言語レベルの並行性
Joe Armstrong博士へのインタビュー
6.2 1日目:外見は普通
はじめよう
コメント,変数,式
アトム,リスト,タプル
パターンマッチング
関数
1日目で学んだこと
セルフスタディ1日目
6.3 2日目:変身
制御構文
無名関数
リストと高階関数
高度なリストの概念
2日目で学んだこと
セルフスタディ2日目
6.4 3日目:赤い錠剤(The Red Pill)
並行性を実現する基本プリミティブ
同期メッセージ
プロセスのリンクによる信頼性の実現
3日目で学んだこと
セルフスタディ3日目
6.5 Erlangのまとめ
長所
短所
終わりに
第7章 Clojure
7.1 Clojureとは
Lispについて
JVM上で動作
並行処理に関する改良
7.2 1日目:ルークの修行
基本的な関数の呼び出し
文字列と文字
ブール値と式
リスト,マップ,セット,ベクタ
関数を定義する
バインディング
無名関数
Clojureの開発者Rich Hickey氏へのインタビュー
1日目で学んだこと
セルフスタディ1日目
7.3 2日目:マスター・ヨーダとフォース
再帰:loopとrecur
シーケンス
遅延評価
defrecordとprotocol
マクロ
2日目で学んだこと
セルフスタディ2日目
7.4 3日目:悪を見逃すな
参照とトランザクションメモリ
アトムを使う
エージェントを使う
フューチャ
説明しきれなかった点
3日目で学んだこと
セルフスタディ3日目
7.5 Clojureのまとめ
Lispパラドックス
長所
短所
終わりに
第8章 Haskell
8.1 Haskellとは
8.2 1日目:論理的
式とプリミティブ型
関数
タプルとリスト
リストを作り出す
Philip Wadler氏へのインタビュー
1日目で学んだこと
セルフスタディ1日目
8.3 2日目:スポックの大きな強み
高階関数
部分適用関数とカリー化
遅延評価
Simon Peyton-Jones氏へのインタビュー
2日目で学んだこと
セルフスタディ2日目
8.4 3日目:精神融合
クラスと型
モナド
3日目で学んだこと
セルフスタディ3日目
8.5 Haskellのまとめ
長所
短所
終わりに
第9章 全体のまとめ
9.1 プログラミングモデル
オブジェクト指向(Ruby,Scala)
プロトタイプ・プログラミング(Io)
制約論理プログラミング(Prolog)
関数型プログラミング(Scala,Erlang,Clojure,Haskell)
変化するパラダイム
9.2 並行性
可変状態の管理
Io,Erlang,Scalaのアクター
フューチャ
トランザクションメモリ
9.3 プログラムを構成する要素
リスト内包表記
モナド
マッチング
ユニフィケーション
9.4 自分なりの表現を見いだす
付録A 参考資料
監訳者あとがき
索引
著者・監訳者・訳者について
続きを見る