PRESS』編集部が自信を持ってお届けするシリーズです。8/C/C++/Python/JavaScript/Rubyをはじめ各種命令型言語との比較,オススメの開発/設計テクニック等を平易に解説。8ならびに新機構のStackage/stackへの全面対応,関数型言語由来の他言語の機能解説章(第8章)の新設(Swift/Go/Rust/C#等の例も紹介)をはじめ実践開発に役立つ解説を増強し,関数型言語でも命令型言語でも活かせる「使える基本」を凝縮しました。本書では,各章は次のような構成となっています。関数プログラミングと,その実現のための関数型言語とはそれぞれ一体どういうものなのかを説明します。合わせて,関数プログラミング界隈の人とコミュニケーションが取れる程度の,基本的な概念や特徴,用語,歴史などを紹介します。いろいろな関数型言語やそれらで書かれたプロダクトの紹介なども含まれます。[比較で見えてくる]関数プログラミング—C/C++,Java,JavaScript,Ruby,Pytdon,そしてHaskell第1章では,同一の問題設定の元でメジャーな言語のいずれかとHaskellを比較することで,Haskell(あるいは同様の関数型言語)の持つ機能がプログラミングに与える効果を俯瞰します。この時点ではHaskellの文法を説明していませんが,比較対照が存在しHaskellコードの解説も適宜盛り込んでいるため,エッセンスを読み取るのには支障がないような解説となっています。本当にはじめてHaskellに触れる方は,一度第1章をスキップし,第2章から第5章を読んでから戻ってきても良いでしょう。モナド—文脈を持つ計算を扱うための仕掛け第2章から第5章までは,Haskellをはじめ多くの関数型言語の安全性に多大な貢献を果たす「型」,Haskellのコードを読み書きするための基本的な文法や,Haskellと他の言語で実際に計算が進んでいくしくみの違い,特徴的で他の命令型言語で取り入れられ始めた機能であるモナドなどについて詳解します。step)で説明していきます。何がHaskellらしいコードであり,どう考えればそのようなコードを書けるのか,その手段の一つを把握できるでしょう。,(想定読者ではありませんが)あなたに関数型言語の経験があるのであれば,第5章までをスキップし第6章から読み始めるのは良い選択です。第7章は,実際にHaskellを使ってプロダクトを作るにあたり,どうコードベースやライブラリを管理していけば良いかを扱います。あなたのプログラムをオープンソースとして公開したり,業務でHaskellを使ったりする場合の参考となるでしょう。—Ruby,Pytdon,Java,JavaScript,Go,Swift,Rust,C#,C++第8章は,既存の,あるいは比較的新しい言語において,関数プログラミングに特徴的な各要素/機能がどのように取り込まれているかを見ていきます。それぞれの言語で関数プログラミングを行う上での助けとなり,また,その言語そのものに対する理解を深めるきっかけとなるでしょう。Appendix巻末付録です。関数型言語が使えるプログラミングコンテストサイトや,ステップアップのために押さえておきたい参考文献や参考情報を紹介しました。増補改訂に伴い,おもに以下の内容の追加/更新を行いました。本書では,前提として,以下に関する知識等を必要とします。❶❷は比較や概念の対比という形で現れます。❸は,Haskellや他の言語のサンプルコードを実際に試してみるためには必要です。必須ではありませんが,第8章では❹の知識もあると良いでしょう。