2012-11-20 48 views
-1

我有一个表达式列表,我想按顺序评估一个宏,并返回最后一个值。我试过这个,但是编译器不喜欢它:LISP表达式列表

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

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

有没有办法做到这一点,而不使用do循环?

+0

“编译器不喜欢它”这是什么意思? – Marcin

+1

你打算如何使用你的宏?它与预后有什么不同? –

+0

你能给出错误信息吗? –

回答

1

你想

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

但实际上这仅仅是定义progn本身的代名词。