
249
8.3 データフロー対コントロールフロー(制御構造)
return { values: values, state: result.state };
}, init);
var keep = _.filter(intermediate.values, existy);
existy - p26
return done(keep, intermediate.state);
};
};
actions
関数は、関数の配列
act
を引数に取ります。そして、ある値
seed
を引数に
取り中間状態オブジェクトを使用する関数を返します。この返された関数を実行する
と、配列に格納されているすべての関数を順番に実行し、中間状態オブジェクトを構
築します。コードの次の部分です。
...
var intermediate = _.reduce(acts, function (stateObj, action) {
var result = action(stateObj.state);
var values = cat(stateObj.values, [result.answer]);
return { values: values, state: result.state };
}, init);
...
この処理は、最初に配列で与えられたそれぞれの関数が
answer
と
state
という
2
つのキーを持ったオブジェクトを返すことを前提としています。
answer
の値は関数呼
び出しの結果に対応し、
state ...