我正在学习lisp,我试图创建一个简单的函数来求和arr。
(defun sum( N )
( if ( null N )
nil
( + (car N ) ( sum ( cdr N )))))
(sum '(1 2 3 ))但它却会抛出错误
错误:执行:未绑定符号:"N“[]
括号应该是正确的。为什么这会抛出错误,或者我的代码背后的逻辑有什么问题?
如果list是空的,它将返回nil,如果不是,它将递归地返回第一个元素+列表的其余部分。
谢谢你的帮助
发布于 2016-12-07 22:14:09
基本大小写是不正确的,您要在列表中添加数字,因此不能返回nil,当您试图向其中添加一个数字时,它将失败。试试这个:
(defun sum (N)
(if (null N)
0
(+ (car N) (sum (cdr N)))))https://stackoverflow.com/questions/41028257
复制相似问题