SICP 読み (371) 5.5 翻訳系
帰宅したので続きに着手。
問題 5.50
ええと、compile 対象のナニに以下の手続き定義を追加。
(define (map f l) (if (null? l) '() (cons (f (car l)) (map f (cdr l)))))
で、primitive-procedures から map なリストを削除
(list 'apply apply) (list 'list list) ; (list 'map map) (list 'cdddr cdddr) (list 'caddr caddr)
で、どうか。
ってまず compile しないと駄目なんだった。で (start eceval) したら length が lookup できんそうで。追加で以下を primitive-procedures に追加したら
- length
- set-car!
- set-cdr!
動いた。いやはや。で、今から何するんだっけ。eval の入口あたりで breakpoint はって動作を見てみる、かなぁ。