
66
2 章 第一級関数と作用的プログラミング
return book.ed > 1;
});
//=> [{title: "SICP", isbn: "0262510871", ed: 2}]
そして他の関数と同様に、
restrict
関数も抽象テーブル型に対して動作するため、
チェーンすることができます。
restrict(
project(
as(library, {ed: 'edition'}),
['title', 'isbn', 'edition']),
function(book) {
return book.edition > 1;
}
);
//=> [{title: "SICP", isbn: "0262510871", edition: 2},]
上記と同等の
SQL
文は以下のように書くことができます。
SELECT title, isbn, edition FROM (
SELECT ed AS edition FROM library
) EDS
WHERE edition > 1;
同等の
SQL
文と比較してより魅力的であるわけではありませんが、
project
、
as
、
restrict
のそれぞれの関数は、同じテーブル抽象型、つまりオブジェクトの配列に対
して動作します。これがデータ思考です。
2.3
まとめ
本章は第一級関数に焦点をあてました。第一級関数は他のデータ型と同じように扱
うことができる関数のことです。
●
変数に格納することができる
●
配列の要素として格納することができる ...