データ構造の変換に畳み込み関数

関数型言語で非常に重要なfold(あるいはreduce,inject)を使うと初期化あり変数宣言を削除できる

たとえば,二次元配列を一次元にするflattenをJavaScript

var ret = [];
aList.forEach(function(e, i, arr){
  arr.push.call(ret, e);
});

// これが

var ret = aList.reduce(function(acc, e, i, arr){
  arr.push.call(acc, e);
  return acc;
},[]);

あまり記述量に変化なしか.しかし,2文になっていた,宣言と変化する部分が一式となることで,
よりコンパクト簡潔に記述を納めることができた.