如何检查符号是否为宏

Jam*_*unn 3 lisp macros common-lisp

用普通的口吻来说,我希望能够发现符号是否是宏。是否有这样的谓词(macrop),使我能够检测名称/符号是否是宏?

Rai*_*wig 5

如果macro-function返回非NIL,则为宏。

CL-USER 1 > (defmacro foo (bar) bar)
FOO

CL-USER 2 > (macro-function 'foo)
#<anonymous interpreted function 40600108FC>
Run Code Online (Sandbox Code Playgroud)

请注意,这适用于典型的全局宏。还有局部和词法宏,符号宏,...