anchor.diff:  (defun definition-val (exp)
     (if (symbolp (cadr exp))
         (caddr exp)
  -      (error "not implemented lambda")))
  +      (make-lambda (cdadr exp)
  +		   (caddr exp))))
  +
  +(defun make-lambda (parameters body)
  +  `(lambda (,parameters . ,body)))
  +
  +(defun lambda-parameters (exp)
  +  (caadr exp))
  +
  +(defun lambda-body (exp)
  +  (cdadr exp))
   
   (defun assignment-p (exp)
     (tagged-list-p exp 'set!))
  
positive.code: (defun eval-definition (exp env)
    (let ((var (definition-var exp))
  	(val (definition-val exp)))
      (frame-define! (env-first-frame env) var val)))
  
  (defun eval-assignment (exp env)
    (let ((var (assignment-var exp))
  	(val (eval (assignment-val exp))))
      (frame-set! (env-first-frame env) var val)))
  
  (defun application-p (exp)
    (consp exp))
  
negative.code:     ((quoted-p exp) (object-of-quoted exp))
      ((assignment-p exp) (eval-assignment exp env))
      ((definition-p exp) (eval-definition exp env))
      ((lambda-p exp) (eval-lambda exp env))
      ((application-p exp) (eval-application exp env))
      (t 'not-implemented)))
  
  