Function pre-definitions
Functions must be defined or pre-defined before they are used. For mutually recursive functions, one or more of
the functions must be pre-defined prior to the first actual function definition. A pre-definition looks like a
function definition, but using the keyword elsewhere
instead of as
, and no following function body:
define function sort-by-value read-only string original into modifiable string sorted elsewhere
In general the properties of the function arguments in a pre-definition must match those in the function definition. The exceptions are:
On the second point, initial values are permitted in the pre-definition for backwards compatibility if the values are static, but this is discouraged.