■
SICPの遅延評価版schemeで、LによるYコンビネータは上手くいった。
(define L (lambda (x) (lambda (y) (x (y y)))) (define Y (lambda (f) ((L f) (L f)))) ((Y (lambda (f) (lambda (n) (if (= n 1) 1 (+ n (f (- n 1))))))) 10) # => 55
Uコンビネータが上手くいかない。
(define U (lambda (x) (lambda (y) (x ((y y) x))))) (define Y (lambda (f) ((U U) f)))
ではない?
いや、問題なかった。