関数プログラミングの楽しみ


関数プログラミングの楽しみ


オーム社


編集:Jeremy Gibbons、Oege de Moor
訳者:山下伸夫


訳者まえがき
記号表
まえがき
目次

第1章 二分ヒープ木の楽しみ
1.1 二分ヒープ木
1.2 最大回避ヒープ
1.3 持続性
1.4 ラウンドロビンヒープ
1.5 ねじれヒープの解析
1.6 遅延評価
1.7 遅延ねじれヒープの解析
1.8 章末ノート

第2章 仕様に基づくテスト ―― QuickCheckを使って
2.1 はじめに
2.2 QuickCheckにおける性質
2.3 例: キューの抽象データ型を開発する
2.4 型の部分集合上に限量化する
2.5 テストカバレッジ
2.6 規模の大きな事例研究
2.7 まとめ

第3章 おりがみプログラミング
3.1 はじめに
3.2 リストのおりがみ:ソート
3.3 数によるおりがみ:ループ
3.4 木のおりがみ:走査
3.5 おりがみによるその他のソート
3.6 章末ノート

第4章 Haskellで音楽を記述し解釈する
4.1 前奏
4.2 音楽を表現する
4.3 音楽の構造に対する演算
4.4 音楽の意味
4.5 議論

第5章 融合変換を自動化する
5.1 アクティブソース
5.2 融合変換,書き換え,照合
5.3 MAGシステム
5.4 重要な例
5.5 難しさ
5.6 章末ノート

第6章 金融取引契約の書き方
6.1 イントロダクション
6.2 はじめよう
6.3 契約を組み立てる
6.4 価値評価
6.5 実装
6.6 操作的意味論
6.7 章末ノート

第7章 関数画像
7.1 イントロダクション
7.2 画像とは何か
7.3 色
7.4 点ごとの持ち上げ
7.5 空間変換
7.6 アニメーション
7.7 領域代数
7.8 極座標変換
7.9 奇妙なハイブリッド
7.10 ビットマップ
7.11 章末ノート

第8章 Lava:関数によるハードウェア記述
8.1 イントロダクション
8.2 Lavaにおける回路
8.3 リスト上の再帰
8.4 結線パターン
8.5 回路の性質
8.6 順序回路
8.7 バタフライ回路の記述
8.8 Batcherのマージャとソータ
8.9 FPGA設定の生成
8.10 章末ノート

第9章 論理プログラミングのためのコンビネータ
9.1 イントロダクション
9.2 成功のリスト
9.3 探索用モナド
9.4 条件によるフィルタリング
9.5 幅優先探索
9.6 プログラムをモナドレベルに持ち上げる
9.7 項,置換,述語
9.8 論理プログラム用コンビネータ
9.9 再帰プログラム
練習問題
謝辞
補遺:コード

第10章 アローと計算
10.1 計算の概念
10.2 特殊な場合
10.3 アロー記法
10.4 例題
10.5 章末ノート

第11章 もっと整ったプリティプリンタ
11.1 イントロダクション
11.2 単純なプリティプリンタ
11.3 複数のレイアウトに対応したプリティプリンタ
11.4 効率の改善
11.5 例題
11.6 章末ノート
11.7 コード

第12章 ファントム型を楽しむ
12.1 ファントム型の導入
12.2 総称関数
12.3 動的な値
12.4 総称的な走査と問い合わせ
12.5 評価による正規化
12.6 関数逆パース
12.7 型同値型
12.8 章末ノート

参考文献
索引

書籍目次

Posted by shi-n