Common Lisp the Language, 2nd Edition
The loop construct is the simplest iteration facility. It controls no variables, and simply executes its body repeatedly.
[Macro]
loop {form}*
Each form is evaluated in turn from left to right. When the last form has been evaluated, then the first form is evaluated again, and so on, in a never-ending cycle. The loop construct never returns a value. Its execution must be terminated explicitly, using return or throw, for example.
loop, like most iteration constructs, establishes an implicit block named nil. Thus return may be used to exit from a loop with specified results.
A loop construct has this meaning only if every form is
non-atomic (a list). The case where some form is
atomic is reserved for future extensions.
X3J13 voted in January 1989
(LOOP-FACILITY)
to include just such an extension of loop. See chapter 26.