Common Lisp the Language, 2nd Edition A name can be given to a
function in one of two ways. A global name can be given to a
function by using the defun construct. A local name can be given
to a function by using the flet or labels special form. When a
function is named, a lambda-expression is effectively associated
with that name along with information about the entities that
are lexically apparent at that point. If a symbol appears as the
first element of a function-call form, then it refers to the
definition established by the innermost flet or labels construct
that textually contains the reference, or to the global
definition (if any) if there is no such containing construct.