関連サイト
本書の関連ページが用意されています。
内容紹介
本書はHaskell、OCaml、F#、Scalaといった言語の普及により改めて注目される「関数プログラミング」の理論を体系的に学ぶ教科書“Introduction to Functional Programming using Haskell, Second Edition”(Prentice Hall, 1998)の翻訳です。
関数プログラミングにおける評価戦略、データ構造、計算量、型、モナドの仕組みなどについて、Haskellによるシンプルなコードを例に解説しています。
書誌情報
- 著者: Richard Bird(著), 山下伸夫(訳)
- 発行日: 2012-11-21 (紙書籍版発行日: 2012-10-25)
- 最終更新日: 2012-11-21
- バージョン: 1.0.0
- ページ数: 448ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: オーム社
対象読者
すべてのソフトウェア開発者、なかでも関数プログラミングを意識している人
著者について
Richard Bird
執筆時,オックスフォード大学計算機科学科教授,同大学リンカーンカレッジフェロー.翻訳時はリンカーンカレッジ臨時フェロー.
山下伸夫
聖徳大学短期大学部総合文化学科准教授.株式会社タイムインターメディア顧問.Haskell を通じてプログラミングの楽しさを何如に伝えるかに興味がある.
目次
訳者序文
第2版 まえがき
教師への助言
謝辞
目次
第1章 基本概念
- 1.1 セッションとスクリプト
- 1.2 評価
- 1.3 値
- 1.4 関数
- 1.5 定義
- 1.6 型
- 1.7 仕様
- 1.8 章末ノート
第2章 単純なデータ型
- 2.1 ブール値
- 2.2 文字
- 2.3 列挙
- 2.4 組(タプル)
- 2.5 その他の型
- 2.6 型シノニム
- 2.7 文字列
- 2.8 章末ノート
第3章 数値
- 3.1 自然数
- 3.2 帰納法
- 3.3 畳み込み関数
- 3.4 Haskell の数値
- 3.5 例:有理数
- 3.6 例:線形探索と二分探索
- 3.7 チャーチ数
- 3.8 章末ノート
第4章 リスト
- 4.1 リストの表記法
- 4.2 リスト演算
- 4.3 map とfilter
- 4.4 zip
- 4.5 畳み込み(fold)関数
- 4.6 畳み込み則
- 4.7 章末ノート
第5章 リスト処理の例
- 5.1 数を言葉に変換する
- 5.2 クラス成績表の生成
- 5.3 任意長算術演算
- 5.4 カレンダーの印字
- 5.5 テキスト処理
第6章 木
- 6.1 二分木
- 6.2 二分探索木
- 6.3 二分ヒープ木
- 6.4 多分木(rose tree)
- 6.5 例題:Huffman 木
- 6.6 例題:Meertens 数
- 6.7 章末ノート
第7章 効率
- 7.1 遅延評価
- 7.2 漸近的解析
- 7.3 蓄積引数
- 7.4 タプリング法
- 7.5 空間の制御
- 7.6 融合変換,有限差分法,デフォレステーション
- 7.7 章末ノート
第8章 抽象データ型
- 8.1 基本概念
- 8.2 モジュール
- 8.3 集合
- 8.4 バッグ
- 8.5 可変長配列
- 8.6 キュー
- 8.7 章末ノート
第9章 無限リスト
- 9.1 復習
- 9.2 極限としての無限リスト
- 9.3 無限リストの性質
- 9.4 循環構造
- 9.5 例:じゃんけん
- 9.6 ストリームを基本とする対話
- 9.7 章末ノート
第10章 モナド
- 10.1 モナドによる対話
- 10.2 1 つの評価器からさまざまな変形版を作る
- 10.3 モナド則
- 10.4 モナドの複合
- 10.5 章末ノート
第11章 構文解析
- 11.1 連接
- 11.2 選択
- 11.3 反復
- 11.4 効率
- 11.5 章末ノート
第12章 自動運算器
- 12.1 基本となる検討
- 12.2 式,法則,運算
- 12.3 照合と置換
- 12.4 部分式と書き換え
- 12.5 運算器のテスト
- 12.6 章末ノート