-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
你打算如何使用你的宏?它與預後有什麼不同? –
你能給出錯誤信息嗎? –