【发布时间】:2016-10-03 06:44:43
【问题描述】:
刚开始学习LISP,我正在尝试弄清楚如何编写以下递归函数。
我应该有
(DOT-PRODUCT '(1 2) '(3 4)))
输出应该是 11
我写了以下
(defun DOT-PRODUCT (a b)
(if (or (null a) (null b))
0
(+ (* (first a) (first b))
(DOT-PRODUCT (rest a) (rest b)))))
似乎一切正常;但是,它仍然适用于不同长度的列表。我希望它只适用于具有相同长度的数字列表。我应该在哪里添加返回“无效长度”的代码?
【问题讨论】:
标签: recursion lisp common-lisp