
221
7.5 まとめ
Container#update
メソッドの考え方はシンプルです。関数と引数をとって、既存の
値を使った関数呼び出しの値にもとづいて新しい値を設定するということです。どの
ように動作するか実際にみてください。
var aNumber = new Container(42);
aNumber.update(function(n) { return n + 1 });
//=> 43
aNumber;
//=> {_value: 43}
そして、複数の引数を渡す例です。
aNumber.update(function(n, x, y, z) { return n / x / y / z }, 1, 2, 3);
//=> 7.166666666666667
そして、制約関数を使った例です。
aNumber.update(_.compose(megaCheckedSqr, always(0)));
megaCheckedSqr - p152
// Error: 0
ではいけません
これはまだ始まりにすぎません。
9
章では「
Mixin
ベース拡張」の考え方を使って
Container
を拡張します。本章では、変更を可能な限り小さくするためのヒントをお
見せしました。
7.5
まとめ
本章は関数の純粋性の説明と実例から始めました。純粋関数とは、関数自身がコン
トロールできる範囲外にあるどの変数も変更せず、返さず、そして依存することのな
い関数のことです。引数(オリジナル)に変更を加えない関数について多くの時間を ...