0
讓我們假設我得到了下面的宏:如何在LISP函數中調用宏?
(defmacro my-check (number)
`(> 3 ,(apply #'+ number)))
我如何可以調用一個函數這個宏?
我試過了,例如,下面的功能:
(defun do-test (my-object)
(my-check my-object)))
但在編譯時,我得到了以下錯誤:
during macroexpansion of (MY-CHECK MY-OBJECT). Use *BREAK-ON-SIGNALS* to
intercept.
The value MY-OBJECT is not of type LIST.
謝謝。假設我無法修改宏。我怎麼能做一個函數調用而不是重新工作宏? – Xaving
你可以使用原始宏的唯一方法是給它一個文字列表作爲參數,例如'(my-check(1 1))'。它不能與變量一起使用。 – jkiiski
坦克你。你能否詳細說明你是如何得出這個結論的? – Xaving