Common Lisp the Language, 2nd Edition

Next: Indefinite Iteration Up: Control Structure Previous: Blocks and Exits

# 7.8. Iteration

Common Lisp provides a number of iteration constructs. The `loop` construct provides a trivial iteration facility; it is little more than a `progn` with a branch from the bottom back to the top. The `do` and `do*` constructs provide a general iteration facility for controlling the variation of several variables on each cycle. For specialized iterations over the elements of a list or n consecutive integers, `dolist` and `dotimes` are provided. The `tagbody` construct is the most general, permitting arbitrary `go` statements within it. (The traditional `prog` construct is a synthesis of `tagbody`, `block`, and `let`.) Most of the iteration constructs permit statically defined non-local exits (see `return-from` and `return`).

- Indefinite Iteration
- General Iteration
- Simple Iteration Constructs
- Mapping
- The ``Program Feature''