【发布时间】:2016-12-07 22:07:29
【问题描述】:
我正在学习 lisp,我正在尝试创建简单的函数来对 arr 求和。
(defun sum( N )
( if ( null N )
nil
( + (car N ) ( sum ( cdr N )))))
(sum '(1 2 3 ))
但它会引发错误
错误:执行:未绑定符号:“N”[]
括号应该是正确的。为什么这会引发错误或我的代码背后的逻辑有什么问题?
如果列表为空,它将返回 nil ,如果不是,它将递归返回第一个元素 + 列表的其余部分。
感谢您的帮助
【问题讨论】:
-
投票关闭它,因为错误消息似乎来自错误的解释器,并且与代码没有直接关系。我也不认为这个问题和提供的答案可以帮助未来的 SOU
-
即使问题是由于“糟糕”的解释器造成的,其他人也可能会遇到相同的解释器。他们不会觉得这个问题有帮助吗?
-
"如果列表为空则返回nil,否则返回第一个元素+ 总和 其余元素递归列表。” 总是尝试简单的情况,看看发生了什么。
() --> NIL;(1) --> 1 + sum() = 1 + NIL.
标签: lisp common-lisp