&optionalや&keyで引数が指定されて呼び出されたか調べる - lisp-cookbook-ja/common-lisp GitHub Wiki

関数

&optionalや&keyで引数が指定されて呼び出されたか調べる

lambda-listでは以下のようにして調べることができます

(defun hoge (&key (keyword nil keyword-specified-p)) 
  (print (list keyword keyword-specified-p)))
(hoge) ; => (NIL NIL)
(hoge :aaa nil) ; => (NIL T)

(defun fuga (&optional (arg nil arg-specified-p)
  (print (list arg arg-specified-p)))
(fuga) ; => (NIL NIL)
(fuga nil) ; => (NIL T)