请帮忙.我正在尝试创建这个lisp宏,它将一个(数字)列表作为输入并返回这些数字的总和.代码
(setf g (list 1 2 3 4))
(defmacro add-test(var)
`(+ ,@var))
Run Code Online (Sandbox Code Playgroud)
(add-test g) 给出了这个错误
The value G is not of type LIST.
[Condition of type TYPE-ERROR]
Run Code Online (Sandbox Code Playgroud)
同时(add-test (1 2 3 4))给出正确的结果,即10.
你能解释一下,为什么在将变量传入函数时它不起作用?
其他详情 -
Lispbox - SBCL
Ubuntu Linux
提前致谢
common-lisp ×1