
243
8.2 パイプライン
の演算子に近くなるように名前を変更しました。これらはカリー化されたので、
firstEditions
関数をより読みやすく改善することができました。
function allFirstEditions(table) {
return pipeline(table
, RQL.as({ed: 'edition'})
, RQL.select(['title', 'edition', 'isbn'])
, RQL.where(function(book) {
return book.edition === 1;
}));
}
読みやすいだけではなく
†
、
allFirstEditions
関数は全く正常に期待通りの動作を
行います。
allFirstEditions(library);
//=> [{title: "SICP", isbn: "0262010771", edition: 1},
// {title: "Joy of Clojure", isbn: "1935182641", edition: 1}]
JavaScript
におけるパイプラインは、カリー化や部分適用と一緒に使用されること
により「流暢な」作法を持つ関数を合成する手段を提供します。そして本書で定義さ
れている関数は、パイプライン内で動作するように設計されています。関数型プログ
ラミングは、ある関数から次の関数へ流れるにしたがってデータを変換することに焦
点を当てているものの、間接参照や深い入れ子関数によってその焦点が曖昧になって ...