Defining Named Functions

CLtL2 Reference 

macro DEFINE : (name arglist &body body)

All functions in SubL must be named and therefore defined via the SubL construct DEFINE. See also the similar construct DEFPOLYMORPHIC which is used to define generic functions which switch off the type of the first argument.

Argument lists for user-defined function can only be of this form:

( {var}* [&optional {var | ( var [initform [supplied-var]] ) }*] )

In short, SubL supports &optional arguments for user-defined functions but does not support &keyword, &aux or &rest arguments for user-defined functions.