Functions in Lumen are values, just like numbers and strings. Expressions that start with fn
evaluate to functions:
Functions can be called by placing them first in a list expression. The list that appears after the name fn
identifies the function's parameters:
Because functions are values, we can use variables to name them. The same rules apply when calling a function named by a variable:
The most common shortcut for defining functions is to use define
and define-global
in the following way:
A function's parameter list can contain both positional and key parameters, where the key's value is the name to bind:
Parameters in Lumen are always optional, and those without a supplied argument have the value nil
.
Functions can also take a variable number of arguments by either specifying a single parameter instead of a list, or by using the rest
key.