(defun scheme-interpreter () (init-scheme-interpreter) (loop (format t "~&==> ") (interp (read) nil #'print)) )という形になり,interpは,
(defun interp (x env cc) (cond ((symbolp x) (funcall cc (get-var x env))) ((atom x) (funcall cc x)) ((member (car x) '(quote begin set! if lambda)) (interp-specialform (car x) (cdr x) env cc)) ((scheme-macro (car x)) (interp (scheme-macro-expand x) env cc)) (t (interp-call x env cc))))というようにします.ここで,今まで値を返すだけであった 部分が,返す値をccに適用する形に変更されます.