問題4.4

(define (eval-and-sequence exps env)
  (if (null? exps)
      'true
      (if (true? (eval (first-exp exps) env))
          (eval-and-sequence (rest-exps exps) env)
          'false)))
(define (eval-and exp env)
  (eval-and-sequence (cdr exp) env))
(put 'eval 'and eval-and)

(define (eval-or-sequence exps env)
  (if (null? exps)
      'false
      (if (true? (eval (first-exp exps) env))
          'true
          (eval-and-sequence (rest-exps exps) env))))
(define (eval-or exp env)
  (eval-or-sequence (cdr exp) env))
(put 'eval 'or eval-or)