二つの数列の内積を計算する関数の作成。これは簡単。
;;; Exercise 1.5 (defun dot-product (x y) (apply #'+ (mapcar #'* x y))) (dot-product '(10 20) '(3 4)) ;==> 110
模範解答には3つの方法(再帰、ループ、mapcar/apply)が載っていて、同じことをやるのに異なるアプローチが可能なことがよく分かる。
ただ、dotimesのように、これまで本文中で言及されていない関数がどんどん出てくるので、Common Lispのリファレンスは常に手元に置いておかないといけない。*1
*1:そして、「習ってないから分かりません」という甘えた気持ちも捨てないと、読み進めるのが大変になるのかも。