-1

我有一个表达式列表,我想在宏内按顺序计算并返回最后一个表达式的值。我试过这个,但编译器不喜欢它:

(defmacro foo lst-of-exprs
  ',@lst-of-exprs) 

(defmacro foo lst-of-exprs
  '(progn ,@(lst-of-exprs))

有没有办法在不使用 do 循环的情况下做到这一点?

4

1 回答 1

1

你要

(defmacro foo lst-of-exprs
  `(progn ,@lst-of-exprs))

尽管实际上这只是为progn自己定义了一个同义词。

于 2012-11-21T07:14:51.813 回答