The y contaminator, revised
This commit is contained in:
parent
18a3978d51
commit
4709ad20c0
1 changed files with 45 additions and 0 deletions
|
|
@ -6,3 +6,48 @@
|
|||
|
||||
(let x (+ 1 2) (+ x 1))
|
||||
|
||||
(def Y
|
||||
(lambda (f)
|
||||
(lambda (x)
|
||||
((lambda (y)
|
||||
((f (lambda ()
|
||||
(y y)))
|
||||
x))
|
||||
(lambda (y)
|
||||
(lambda (x2)
|
||||
((f (lambda ()
|
||||
(y y)))
|
||||
x2)))))))
|
||||
|
||||
(def yfib
|
||||
(lambda (f)
|
||||
(lambda (x)
|
||||
(if/else (<= x 1)
|
||||
x
|
||||
(+ ((f) (- x 1))
|
||||
((f) (- x 2)))))))
|
||||
|
||||
((Y yfib) 6)
|
||||
|
||||
(def fib
|
||||
((lambda (f)
|
||||
(lambda (x)
|
||||
((lambda (y)
|
||||
((f (lambda ()
|
||||
(y y)))
|
||||
x))
|
||||
(lambda (y)
|
||||
(lambda (x2)
|
||||
((f (lambda ()
|
||||
(y y)))
|
||||
x2))))))
|
||||
(lambda (f)
|
||||
(lambda (x)
|
||||
(if/else (<= x 1)
|
||||
x
|
||||
(+ ((f) (- x 1))
|
||||
((f) (- x 2))))))))
|
||||
|
||||
(fib 6)
|
||||
|
||||
;; ((yfib yfib) 3)
|
||||
|
|
|
|||
Loading…
Reference in a new issue