Support Missing Lambda List Features in DEFINE-FUNCTION
The define-function macro family, currently located in util.lisp currently doesn't support a few fairly obscure features of CL's lambda-lists.
These are:
-
&optionaland&keyvariables allow an optional third (fourth if added todefine-function)suppliedpvariable (specified here for&optionaland here for&key) that is true if the variable was supplied or false if the variable was not supplied.-
&keymight have other features not supported. The specification will have to be read carefully.
-
-
&auxvariables are essentially an implicitlet*that is added to the start of the function.declareworks as expected on these so they should be fairly easy to support.
Update (2021-02-06): Also make sure &allow-other-keys is supported.
Edited by Michael Babich