関数型プログラミング
純粋関数
参照透過性
あるインプットに対して、常にあるアウトプットを返す
嬉しいこと: テストしやすい
React-Redux: reducer (flux)
副作用
イミュータブル
関数はインプットを書き換えず、新たなオブジェクトを返す
map, reduce
新しいオブジェクトをアウトプットとする繰り返しの式
for を綺麗にかける、とかはどうでも良い。
嬉しいこと:
関数によってインプットが書き換えられる心配がない。
他の関数の参照透過性を崩すことがない。
react-redux: Object.assign()
関数合成
複数の関数を順番に適用する、一つの関数を作ること
カリー化、部分適用
複数の引数を持つ関数を、単一の引数を持つ関数のチェーンにすることがカリー化
カリー化された関数から実際に関数を作ることが部分適用
嬉しいこと
変数を階数単位で共有、抽象化できる
react-redux: mapDispatcheToActions