マクロ用に(明示的に)与えられているプレディケートは存在しませんが、 (fboundp を 用い)あるシンボルの関数セルが void か否かをテストすることはできます。アーギュ メントがマクロであるか否をテストする関数を以下に示します。
(defun macrop (form)
"Return true if FORM function is a lisp macro."
(while (and (symbolp form) (fboundp form))
(setq form (symbol-function form)))
(and (listp form)
(eq 'macro (car form)))
)