内容紹介
Haskellで学ぶ関数プログラミングの入門書
本書はHaskell、OCaml、F#、Scalaといった言語の普及により改めて注目される「関数プログラミング」の理論を体系的に学ぶ教科書"Introduction to Functional Programming using Haskell"(Prentice Hall, 1998)の翻訳です。
関数プログラミングにおける評価戦略、データ構造、計算量、型、モナドの仕組みなどについて、Haskellによるシンプルなコードを例に解説しています。
このような方におすすめ
・すべてのソフトウェア開発者
・なかでも関数プログラミングを意識している人
目次
主要目次
第1章 基本概念
第2章 単純なデータ型
第3章 数値
第4章 リスト
第5章 リスト処理の例
第6章 木
第7章 効率
第8章 抽象データ型
第9章 無限リスト
第10章 モナド
第11章 構文解析
第12章 自動運算器
付録
詳細目次
訳者序文
第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 章末ノート
付録A 標準関数(抜粋)
付録B Haskell プログラムの表記
付録C Glasgow Haskell Compiler
付録D 訳語一覧
参考文献
続きを見る