§6 関数型プログラミング
- プログラミング以前から存在する(1930年代の Alonzo Church のラムダ計算)
- 関数型言語の変数は変化しない
- 並行処理の問題は可変変数がなければ発生しない
- 変数が変更するコンポーネントと不変のコンポーネントを分離して、可変コンポーネントからできるだけ不変コンポーネントに処理を移動する
- データの状態を保存するのではなく、変更内容を保存する(イベントソーシング)
- 十分な容量のストレージと十分な処理能力があれば、アプリケーションを不変にできる
まとめ
- プログラミングパラダイムはプログラミングに制約を課す
- 構造化プログラミングは直接的な制御の移行に制約を
- オブジェクト指向プログラミングは関節的な制御の移行に制約を課す
- 関数型プログラミングは代入に制約を課す