ANSI Common Lisp 6 Iteration 6.1 The LOOP Facility
6.1.5 Unconditional Execution Clauses
The do and doing constructs
wherever they occur in the expanded form of loop.
The form argument can be any compound form.
Each form is evaluated in every iteration.
Because every loop clause must begin with a loop keyword,
the keyword do is used when no control action other than execution is
The return construct takes one form.
Any values returned by the form
are immediately returned by the loop form.
It is equivalent to the clause
do (return-from block-name value),
where block-name is the name specified in a named
clause, or nil if there is no named clause.
188.8.131.52 Examples of unconditional execution