【发布时间】:2010-09-20 20:37:10
【问题描述】:
请在这里帮忙。我正在尝试创建这个 lisp 宏,它以(数字)列表作为输入并返回这些数字的总和。代码
(setf g (list 1 2 3 4))
(defmacro add-test(var)
`(+ ,@var))
(add-test g) 给出这个错误
The value G is not of type LIST.
[Condition of type TYPE-ERROR]
同时(add-test (1 2 3 4)) 给出正确的结果,即 10。
你能解释一下,为什么将变量传递给函数时它不起作用?
其他细节-
Lispbox - SBCL
Ubuntu Linux
提前致谢
【问题讨论】:
标签: common-lisp