在common lisp中 如果要使用error 檢測函數參數中&key類參數 其實不能實現,原因在於解釋器內置報錯會首先執行
不如在函數:
(defun foo(&key x y)
(cond (x (print x)) (y (print y)) (t (error "Error from package: ~A" *package*)))
當調用(foo :z 1) 時
SBCL 會首先報錯: unknown &KEY argument: :Z
[Condition of type SB-INT:SIMPLE-PROGRAM-ERROR]