組み込み関数

昨日の高崎線の大幅遅延の間にset-car!とかいろいろ組み込み関数を追加した。
でもって、これが動かない。

Starting program: /home/troter/work/jmc-lisp/jmcl
> (set! cons (lambda (x y) (lambda (m) (cond ((< 0 (- m 1)) x) (t y)))))
(set! cons (lambda (x y) (lambda (m) (cond ((< 0 (- m 1)) x) (t y)))))
#<closure>(x y)((lambda (m) (cond ((< 0 (- m 1)) x) (t y))))
> (set! car (lambda (z) (z 0)))
(set! car (lambda (z) (z 0)))
#<closure>(z)((z 0))
> (car (cons 1 2))
(car (cons 1 2))

Program received signal SIGSEGV, Segmentation fault.
eval_list (sexp=0x804b028) at eval.c:32

結局帰ったの午前五時だった。