lisp-take-1/examples/sandbox.txt

75 lines
1.2 KiB
Text

# comments
# # (define fib
# # (lambda (x)
# # (?: (> x 1)
# # (+ (fib (- x 1)) (fib (- x 2)))
# # 1)))
#
# # (fib 1)
# # (fib 2)
# # (fib 3)
# # (fib 4)
# # (fib 5)
(define! let1!
(lambda! (a b c)
((lambda (list! a) c) b)))
(let1! x 3 (+ x 2))
# (define! let2!
# (lambda! (a b c d e)
# ((lambda (list! a b) e) c d)))
#
# (let2! x y 3 5 (+ x y 2))
# (define! let3!
# (lambda! (a b c)
# (cons! (lambda a c) b)))
#
# (let3! (x y z) (1 2 3) (+ x y z 2))
# (define Y
# (lambda (f)
# (f (lambda (x) ((Y f) x)))))
#
# (define almost-factorial
# (lambda (f)
# (lambda (n)
# (if/else (= n 0)
# 1
# (* n (f (- n 1)))))))
#
# (define factorial (Y almost-factorial))
#
# (factorial 1)
# (factorial 2)
# (factorial 3)
# (factorial 4)
# (let1! x 3 (+ x 2))
# (define almost
# (lambda (f n)
# (if/else (= n 0)
# 1
# (* n (f f (- n 1))))))
(define factorial
(let1! almost
(lambda (f n)
(if/else (= n 0)
1
(* n (f f (- n 1)))))
(lambda (x) (almost almost x))))
(factorial 1)
(factorial 2)
(factorial 3)
(factorial 4)