内容紹介
関数プログラミングを「楽しむ」という視点から学ぶ教科書
関数プログラミングとは、代入や状態を避け、数学における関数と同じように計算を扱うプログラミングの考え方。本書は、関数プログラミングを「楽しむ」という視点から、実際の問題に対して有益な応用を学ぶことができる教科書の翻訳書。各章では、向上心あるプログラマにとって魅力的な話題を、この分野の高名な研究者たちがそれぞれ分担して執筆している。
"The Fun of Programming" (PALGRAVE MACMILLAN, 2003)の翻訳出版。
このような方におすすめ
・すべてのソフトウェア開発者
・なかでも関数プログラミングを意識している人
目次
主要目次
訳者まえがき
記号表
まえがき
目次
第1章 二分ヒープ木の楽しみ
第2章 仕様に基づくテスト ―― QuickCheckを使って
第3章 おりがみプログラミング
第4章 Haskellで音楽を記述し解釈する
第5章 融合変換を自動化する
第6章 金融取引契約の書き方
第7章 関数画像
第8章 Lava:関数によるハードウェア記述
第9章 論理プログラミングのためのコンビネータ
第10章 アローと計算
第11章 もっと整ったプリティプリンタ
第12章 ファントム型を楽しむ
参考文献
索引
詳細目次
訳者まえがき
記号表
まえがき
目次
第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 章末ノート
参考文献
索引
続きを見る