【发布时间】:2012-02-16 06:54:04
【问题描述】:
有人可以解释以下行为吗?具体来说,为什么函数每次都返回不同的列表?为什么每次调用函数时都没有将some-list初始化为'(0 0 0)?
(defun foo ()
(let ((some-list '(0 0 0)))
(incf (car some-list))
some-list))
输出:
> (foo)
(1 0 0)
> (foo)
(2 0 0)
> (foo)
(3 0 0)
> (foo)
(4 0 0)
谢谢!
编辑:
另外,假设我希望函数每次都输出'(1 0 0),那么推荐的实现这个函数的方法是什么?
【问题讨论】:
标签: scope lisp common-lisp literals