-1
我有一个表达式列表,我想按顺序评估一个宏,并返回最后一个值。我试过这个,但是编译器不喜欢它:LISP表达式列表
(defmacro foo lst-of-exprs
',@lst-of-exprs)
和
(defmacro foo lst-of-exprs
'(progn ,@(lst-of-exprs))
有没有办法做到这一点,而不使用do循环?
我有一个表达式列表,我想按顺序评估一个宏,并返回最后一个值。我试过这个,但是编译器不喜欢它:LISP表达式列表
(defmacro foo lst-of-exprs
',@lst-of-exprs)
和
(defmacro foo lst-of-exprs
'(progn ,@(lst-of-exprs))
有没有办法做到这一点,而不使用do循环?
你想
(defmacro foo lst-of-exprs
`(progn ,@lst-of-exprs))
但实际上这仅仅是定义progn
本身的代名词。
“编译器不喜欢它”这是什么意思? – Marcin
你打算如何使用你的宏?它与预后有什么不同? –
你能给出错误信息吗? –