Macros LISP表达式列表
我有一个表达式列表,我希望在宏中按顺序计算这些表达式,并返回最后一个表达式的值。我尝试过这个,但编译器不喜欢它:Macros LISP表达式列表,macros,lisp,Macros,Lisp,我有一个表达式列表,我希望在宏中按顺序计算这些表达式,并返回最后一个表达式的值。我尝试过这个,但编译器不喜欢它: (defmacro foo lst-of-exprs ',@lst-of-exprs) 及 有没有一种不用do循环的方法可以做到这一点 (defmacro foo lst-of-exprs `(progn ,@lst-of-exprs)) 虽然这实际上只是定义了progn本身的同义词。“编译器不喜欢它”这意味着什么?您打算如何使用宏?它与progn有何不同?您能给出错误
(defmacro foo lst-of-exprs
',@lst-of-exprs)
及
有没有一种不用do循环的方法可以做到这一点
(defmacro foo lst-of-exprs
`(progn ,@lst-of-exprs))
虽然这实际上只是定义了
progn
本身的同义词。“编译器不喜欢它”这意味着什么?您打算如何使用宏?它与progn有何不同?您能给出错误消息吗?
(defmacro foo lst-of-exprs
`(progn ,@lst-of-exprs))