首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lisp无界符号

Lisp无界符号
EN

Stack Overflow用户
提问于 2016-12-07 22:07:29
回答 1查看 1.1K关注 0票数 1

我正在学习lisp,我试图创建一个简单的函数来求和arr。

代码语言:javascript
复制
(defun sum( N )
    ( if ( null N )
         nil
         ( + (car N ) ( sum ( cdr N )))))

(sum '(1 2 3 ))

但它却会抛出错误

错误:执行:未绑定符号:"N“[]

括号应该是正确的。为什么这会抛出错误,或者我的代码背后的逻辑有什么问题?

如果list是空的,它将返回nil,如果不是,它将递归地返回第一个元素+列表的其余部分。

谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2016-12-07 22:14:09

基本大小写是不正确的,您要在列表中添加数字,因此不能返回nil,当您试图向其中添加一个数字时,它将失败。试试这个:

代码语言:javascript
复制
(defun sum (N)
  (if (null N)
      0
      (+ (car N) (sum (cdr N)))))
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41028257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档