ly(rical)sh

lysh*1最小 Lisp ± α。とりあえず↓は出たものの、何かが壮絶に間違っている予感。でも七月の月報が怖いから深追いしない。

lysh$ source min-lisp-plus-minus.lsh
> (define fix (lambda (f) ((lambda (x) (lambda (y) ((f (x x)) y))) (lambda (x) (lambda (y) ((f (x x)) y))))))
fix
> (define fact (fix (lambda (f) (lambda (n) (if (< n 1) 1 (* n (f (- n 1))))))))
fact
> (fact 6)
720
> (define k (call/cc call/cc))
k
> k
#<closure>
> (k 123)
k
> k
123

*1:バージョン 0.0.0.0.1.0.6.5 以降でないと動きません。