[go: up one dir, main page]

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:

  • &optional and &key variables allow an optional third (fourth if added to define-function) suppliedp variable (specified here for &optional and here for &key) that is true if the variable was supplied or false if the variable was not supplied.
    • &key might have other features not supported. The specification will have to be read carefully.
  • &aux variables are essentially an implicit let* that is added to the start of the function. declare works 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