
xviii
はじめに
ロージャについてはその仕組みと、なぜ・どのようにクロージャを使用するのか
を説明します。
4
章 高階関数
2
章と
3
章で学んだことを基にして、第一級関数の重要な一形態である高階関数
について説明します。「高階関数」はわかりにくい名称ですが、本章ではこれが
実は複雑ではないということをお見せします。
5
章 関数を組み立てる関数
これまでの流れから脱出して、
5
章は他の関数を使って関数を「合成」する方法
を説明します。関数型プログラミングにおいて関数の合成は重要なテクニックで
すが、本章ではそのプロセスを最初から最後まで説明します。
6
章 再帰
6
章はもうひとつの過渡的な内容を扱う章です。直接、もしくは間接的に自身を
呼び出す関数を表す再帰を紹介します。
JavaScript
において再帰は制限されてお
り、頻繁に使用されることはありませんが、制限を回避する方法は多数存在しま
す。本章ではそのうちのいくつかを紹介します。
7
章 純粋性、不変性、変更方針
7
章は、何も変更しないような関数型のコードを記述する様々な手段を扱います。
シンプルに言うと、関数型プログラミングは変数が全く変更されないような場合
に最も容易に行えるということですが、本章ではこれがどういう意味を持つのか
を最初から最後まで説明します。
8
章 フローベースプログラミング
8
章は、タスクやシステム全体を、関数によりデータを変換する仮想の「組立ラ
イン」として見て、その見方をプログラミングで実現します。
9
章 クラスを使わないプログラミング
最後の章では、関数型プログラミングが、クラスベースのオブジェクト指向プロ ...