SICP演習問題5.9
;; exercise 5.9 (define (make-operation-exp exp machine labels operations) (let ((operation (lookup-primitive (operation-exp-op exp) operations)) (aprocs (map (lambda (e) (if (not (label-exp? e)) (make-primitive-exp e machine labels) (error "Don't apply label to operation -- ASSEMBLE" e))) (operation-exp-operands exp)))) (lambda () (apply operation (map (lambda (p) (p)) aprocs))) )) (define hoge-machine (make-machine '() (list (list '= =)) '(start (test (op =) (label start) (label start))))) ;gosh> *** ERROR: Don't apply label to operation -- ASSEMBLE (label start)