dolist
dolist (var list-form [result-form]) {declaration}* {tag | statement}* → {result}*
var—a symbol.
list-form—a form.
result-form—a form.
declaration—a declare expression; not evaluated.
tag—a go tag; not evaluated.
statement—a compound form; evaluated as described below.
7.8.3 4results—if a return or return-from form is executed, the values passed from that form; otherwise, the values returned by the result-form or nil if there is no result-form.
7.8.3 6dolist iterates over the elements of a list. The body of dolist is like a tagbody. It consists of a series of tags and statements.
dolist evaluates list-form, which should produce a list. It then executes the body once for each element in the list, in the order in which the tags and statements occur, with var bound to the element. Then result-form is evaluated. tags label statements.
At the time result-form is processed, var is bound to nil.
An implicit block In effect, a \specref{block}named nil surrounds dolist. Made symmetric with the wording in DOTIMES. -kmp 26-May-93
7.8.3 5
7.8.3 8
\macref{return} may be used to terminate the loop
and return a specified value.return may be used to terminate the loop immediately without performing any further iterations, returning zero or more values.
Changed per Loosemore #28, first public review For \macref{dolist}, the \term{scope} of the name binding does not include any initial value form, but the stepper and optional result forms are included.The scope of the binding of var does not include the list-form, but the result-form is included.
Added per Loosemore #27, first public reviewIt is implementation-dependent whether dolist establishes a new binding of var on each iteration or whether it establishes a binding for var once at the beginning and then assigns it on any subsequent iterations.
(setq temp-two '()) → NIL (dolist (temp-one '(1 2 3 4) temp-two) (push temp-one temp-two)) → (4 3 2 1) (setq temp-two 0) → 0 (dolist (temp-one '(1 2 3 4)) (incf temp-two)) → NIL temp-two → 4 (dolist (x '(a b c d)) (prin1 x) (princ " ")) ⊳ A B C D → NIL
None.
None.
None.
do, dotimes, tagbody, Section 3.6 (Traversal Rules and Side Effects)
go may be used within the body of dolist to transfer control to a statement labeled by a tag.