M-OZ BLOG

Scheme-users.jpTwitter

# 2009/02/05(Thu) : Scheme を作ろう 9
Y Combinator が動くようになった。
未だにコレの原理が理解できてないけど、動いた。

 (define Y
  (lambda (f)
   ((lambda (proc)
    (f (lambda (arg) ((proc proc) arg))))
   (lambda (proc)
    (f (lambda (arg) ((proc proc) arg)))))))
 (define fact
  (lambda (f)
   (lambda (n)
    (if (= 0 n) 1 (* n (f (- n 1)))))))
 ((Y fact) 5)
 ;=> 120

[TOP] [ALL]