2012-11-20 79 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本身的代名詞。