SICP Practice

Practice 4.6

(define (let->combination exp)
  (let ((formal-params (map car (let-vars exp)))
        (real-params (map cadr (let-vars exp)))
        (lambda-body (let-body exp)))
    (list (make-lambda formal-params lambda-body)
          real-params)))

(define (let-body exp)
  (caddr exp))

(define (let-vars exp)
  (cadr exp))

(define (let? exp)
  (tagged-list? exp 'let))

在cond中加入下面的子句

((let? exp) (eval (let->combination exp) env))