演習1.5

二つの数列の内積を計算する関数の作成。これは簡単。

;;; 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:そして、「習ってないから分かりません」という甘えた気持ちも捨てないと、読み進めるのが大変になるのかも。