Common Lisp the Language, 2nd Edition


next up previous contents index
Next: General Iteration Up: Iteration Previous: Iteration

7.8.1. Indefinite Iteration

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.

old_change_begin
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.


Implementation note: There have been several proposals for a powerful iteration mechanism to be called loop. One version is provided in Lisp Machine Lisp. Implementors are encouraged to experiment with extensions to the loop syntax, but users should be advised that in all likelihood some specific set of extensions to loop will be adopted in a future revision of Common Lisp.

old_change_end

change_begin
X3J13 voted in January 1989 (LOOP-FACILITY)   to include just such an extension of loop. See chapter 26.
change_end



next up previous contents index
Next: General Iteration Up: Iteration Previous: Iteration


AI.Repository@cs.cmu.edu