[増補改訂]関数プログラミング実践入門 ──簡潔で,正しいコードを書くために
この本の概要
現場の方々に向け,関数プログラミングのエッセンスを厳選解説した入門書。関数型言語Haskellを用い,基本から,Java 8/C/C++/Python/JavaScript/Rubyをはじめ各種命令型言語との比較,オススメの開発/設計テクニック等を平易に解説。改訂版ではGlasgow Haskell Compiler 8ならびに新機構のStackage/stackへの全面対応,関数型言語由来の他言語の機能解説章(第8章)の新設(Swift/Go/Rust/C#等の例も紹介)をはじめ実践開発に役立つ解説を増強し,関数型言語でも命令型言語でも活かせる「使える基本」を凝縮しました。
こんな方におすすめ
- 簡潔なコードを書きたい方
- 安全でバグらせにくい,正しいコードの設計/実装に関心のある方々
- JavaやC++などメジャーな命令型言語の新機能と関数型言語の関係に興味をお持ちの方々
目次
本書について
本書の構成
増補改訂における,おもな変更点
本書で必要となる前提知識
謝辞
第0章 [入門]関数プログラミング ——「関数」の世界
0.1 関数プログラミング,その前に ——実用のプログラムで活かせる強みを知る
- 関数プログラミングから得られる改善
0.2 関数とは何か? ——命令型言語における関数との違い
- 関数プログラミングにおける関数
- 副作用
0.3 関数プログミングとは何か? ——「プログラムとは関数である」という見方
- プログラミングのパラダイム
- 命令型プログラミングのパラダイム
- オブジェクト指向プログラミングのパラダイム
- 関数プログラミングのパラダイム ——プログラムとは「関数」である
- 関数の持つモジュラリティ ——「プログラムを構成する部品」としての独立性
0.4 関数型言語とは? ——関数が第一級の対象である? 代入がない?
- 関数型言語であるための条件
- 関数のリテラルがある
- 関数を実行時に生成できる
- 関数を変数に入れて扱える
- 関数を手続きや関数に引数として与えることができる
- 関数を手続きや関数の結果として返すことができる
- 関数型言語と命令型言語
- 代入がないことから得られるもの
- 以下略