19 lines
369 B
Text
19 lines
369 B
Text
def fac (f)
|
|
function (n)
|
|
if (equal? n 0) 1
|
|
* n (f (- n 1))
|
|
def fib (f)
|
|
function (n)
|
|
cond
|
|
(equal? n 0) 0
|
|
(equal? n 1) 1
|
|
else (+ (f (- n 1)) (f (- n 2)))
|
|
|
|
def Y (f)
|
|
(function (x) (x x))
|
|
function (y)
|
|
f
|
|
function (&rest args) (apply (y y) args)
|
|
|
|
assertEqual ((Y fac) 5) 120
|
|
assertEqual ((Y fib) 8) 21
|