小编bde*_*dev的帖子

基本的Lisp宏错误

请帮忙.我正在尝试创建这个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

3
推荐指数
1
解决办法
441
查看次数

标签 统计

common-lisp ×1