anchor.diff:     (assert-equal 19 ((lambda (a b) (+ a b)) 10 9))
     (let ((my-function))
       (setf my-function (lambda (a b) (* a b)))
  -    (assert-equal ___ (funcall my-function 11 9)))
  +    (assert-equal 99 (funcall my-function 11 9)))
     (let ((list-of-functions nil))
       (push (lambda (a b) (+ a b)) list-of-functions)
       (push (lambda (a b) (* a b)) list-of-functions)
       (push (lambda (a b) (- a b)) list-of-functions)
  -    (assert-equal ___ (funcall (second list-of-functions) 2 33))))
  +    (assert-equal 66 (funcall (second list-of-functions) 2 33))))
   
   (define-test test-lambdas-can-have-optional-params
  -   (assert-equal ___ ((lambda (a &optional (b 100)) (+ a b)) 10 9))
  -   (assert-equal ___ ((lambda (a &optional (b 100)) (+ a b)) 10)))
  +   (assert-equal 19 ((lambda (a &optional (b 100)) (+ a b)) 10 9))
  +   (assert-equal 110 ((lambda (a &optional (b 100)) (+ a b)) 10)))
   
   
   ; returns sign x
  
positive.code:     (setq f2 '-)
      (setq f3 'max)
  
      (assert-equal ___ (apply f1 '(1 2)))
      (assert-equal ___ (apply f2 '(1 2)))
  
      ; after the function name, the parameters are consed onto the front
      ; of the very last parameter
      (assert-equal ___ (apply f1 1 2 '(3)))
      (assert-equal ___ (apply f3 1 2 3 4 '()))))
  
  
  (define-test test-apply-function-with-funcall
  
negative.code: 
  (define-test test-key-params ()
    "Key params allow the user to specify params in any order"
     (assert-equal (func-with-key-params) '(nil nil))
     (assert-equal (func-with-key-params :a 11 :b 22) '(11 22))
     ; it is not necessary to specify all key parameters
     (assert-equal (func-with-key-params :b 22) '(nil 22))
     ; order is not important
     (assert-equal (func-with-key-params :b 22 :a 0) '(0 22)))
  
  (defun func-key-params-can-have-defaults (&key  (a 3 a?) (b 4 b?))
    (list a a? b b?))
  
  (define-test test-key-params-can-have-defaults
      "key parameters can have defaults also"
     (assert-equal (func-key-params-can-have-defaults) '(3 nil 4 nil))
     (assert-equal (func-key-params-can-have-defaults :a 3 :b 4) '(3 t 4 t))
     (assert-equal (func-key-params-can-have-defaults :a 11 :b 22) '(11 t 22 t))
     (assert-equal (func-key-params-can-have-defaults :b 22) '(3 nil 22 t))
     ; order is not important
     (assert-equal (func-key-params-can-have-defaults :b 22 :a 0) '(0 t 22 t)))
  
  
  ;; ----
  