【发布时间】:2017-04-25 07:49:12
【问题描述】:
(defun suma (L)
(setq var 0)
(do
((i 0 (+ i 1)))
((= i (length L)))
(+ var (nth i L)))
var)
为什么总是返回0?
它不应该返回列表 L 的总和吗?
【问题讨论】:
-
请先使用一个好的编辑器,它会为您缩进代码。
-
您应该将
var与let绑定,而不是使用setq使其成为全局对象 -
我用 let 得到了同样的结果...而且我使用 notepad++ 但发布的代码没有缩进 sry
-
setq的问题在于您正在创建一个全局变量。你不应该在函数中这样做。
标签: lisp common-lisp