dispatcher
(define (base-eval exp env)
  (cond ((number? exp)           exp)
        ((boolean? exp)          exp)
        ((string? exp)           exp)
        ((symbol? exp)           (eval-var exp env))    ; 3 節
        ((eq? (car exp) 'define) (eval-define exp env)) ; 3 節
        ((eq? (car exp) 'lambda) (eval-lambda exp env)) ; 3 節
        ((eq? (car exp) 'set!)   (eval-set! exp env))   ; 3 節
        ((eq? (car exp) 'quote)  (eval-quote exp env))  ; 3 節
        ((eq? (car exp) 'if)     (eval-if exp env))     ; 3 節
        ((eq? (car exp) 'load)   (eval-load exp env))   ; 5 節
        (else (eval-application exp env))))             ; 4 節

一覧 前へ 次へ