![]() |
� | pLISP � '98 Thomas Mahler |
// define some simple functions for demonstration
// and benchmarking
// compute the factorial (fac 4) = 1*2*3*4 = 24
(define fac (lambda (n)
(if (= n 0)
1
(* n (fac (-1 n))))))
// version of factorial for use with Y Combinator (Y facY 4)
(define facY
(lambda (f n)
(if (= n 0) 1 (* n (f (-1 n))))))
// compute fibonacci numbers:
(define fib (lambda (n)
(if (= n 0)
1
(if (= n 1)
1
(+ (fib (-1 n)) (fib (- n 2)))))))
// version of fib using Y combinator
(define fibY (lambda (f n)
(if (= n 0)
1
(if (= n 1)
1
(+ (f (-1 n)) (f (- n 2)))))))
// (tak 18 12 6) is a nice benchmark fo