anchor.diff:      "mapcar and reduce are a powerful combination.
        insert the correct function names, instead of WRONG-FUNCTION-X
        to define an inner product."
  -  (defun inner (x y) 
  -    (reduce #'WRONG-FUNCTION-2 (mapcar #'WRONG-FUNCTION-3 x y)))
  +  (defun inner (x y)
  +    (reduce #'+ (mapcar #'* x y)))
     (assert-equal 32 (inner '(1 2 3) '(4 5 6)))
     (assert-equal 310 (inner '(10 20 30) '(4 3 7))))
  
positive.code:     "The reduce function combines the elements
       of a list, from left to right, by applying
       a binary function to the list elements."
    (assert-equal ___  (reduce #'+ '(1 2 3 4)))
    (assert-equal ___ (reduce #'expt '(2 3 2))))
  
  
  (define-test test-reduce-right-to-left
      "The keyword :from-end allows us to apply
       reduce from right to left."
    (assert-equal ___ (reduce #'+ '(1 2 3 4) :from-end t))
    (assert-equal ___ (reduce #'expt '(2 3 2) :from-end t)))
  
  
  (define-test test-reduce-with-initial-value
      "We can supply an initial value to reduce."
    (assert-equal ___ (reduce #'expt '(10 21 34 43) :initial-value 1))
    (assert-equal ___ (reduce #'expt '(10 21 34 43) :initial-value 0)))
  
  
  (defun WRONG-FUNCTION-2 (a b) (a))
  
negative.code:     "The mapcar function can be applied to
       more than one list. It applies a function
       to successive elements of the lists."
    (assert-equal '(4 10 18) (mapcar #'* '(1 2 3) '(4 5 6)))
    (assert-equal '(("lisp" "koans")("are" "fun")) (mapcar #'list '("lisp" "are") '("koans" "fun"))))
  
  
  (define-test test-transpose-using-mapcar
      "Replace the usage of WRONG-FUNCTION in 'transpose' with the
       correct lisp function (don't forget the #')."
    (defun WRONG-FUNCTION-1 (&rest rest) '())
    (defun transpose (L) (apply #'mapcar #'list L))
    (assert-equal '((1 4 7)
                    (2 5 8)
                    (3 6 9))
                  (transpose '((1 2 3)
                               (4 5 6)
                               (7 8 9))))
    (assert-equal '(("these" "pretzels" "are")
                    ("making" "me" "thirsty"))
  