"amb は 天使のオペレータです。" 独習 Scheme 三週間 参考 RhinoWithContinuations Scheme 入門 18. 非決定性 SICP 4.3 Nondeterministic Computing ambで、三平方の定理を満たす整数の組を探す。 var fail = []; function amb(l) { if (l.length == 0) return (fail.pop())(); var k = new Continuation(); fail.push(function () {k(amb(l.slice(1)))}); return l[0]; } function pythag(a,b,c) { if (a * a + b * b == c * c) return [a,b,c]; amb([]); } print((function()