next up previous
Next: 9.4 組み込み基本関数の定義 Up: 9 Continuation操作機構をもつSchemeインタプリタ Previous: 9.2 スペシャルフォームの実行

9.3 関数呼び出しの実行

関数呼び出しの部分は,リストデータの各要素を最初から順にinterp してゆく手続きmap-interpをまず定義します. それは,リストデータがnilならば,与えられたccをnil を引数として実行します.

(defun interp-call (call env cc)
  (map-interp call env
              #'(lambda (fa)
                  (apply (car fa) cc (cdr fa)))))

(defun map-interp (list env cc)
  (if (null list)
      (funcall cc nil)
    (interp (car list) env
            #'(lambda (x)
                (map-interp
                 (cdr list) env
                 #'(lambda (y)
                     (funcall cc (cons x y))))))))


generated through LaTeX2HTML. M.Inaba 平成18年5月6日