あー、失敗。「プログラマのための述語論理」は、説明にJavaScriptを使うべきだった(「みにくいアヒルの子 -- コンピューティング・サイエンスとJavaScript」も参照)。技巧的なJavaコードじゃ、分かるものも分からなくなる。 手遅れだろうけど、JavaScriptで書き直し。 述語の例 function positive(n) { return n > 0; } function zero(n) { return n === 0; } function empty(s) { return s === ""; } 述語論理の演算 function and(p, q) { return function(x) { return p.call(null, x) && q.call(null, x); }; } function or(p, q) { return function(