マクロ用に(明示的に)与えられているプレディケートは存在しませんが、 (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))) )