Next: Other Clauses, Previous: Iteration Clauses, Up: Loop Facility
These clauses cause the loop to accumulate information about the
specified Lisp form. The accumulated result is returned
from the loop unless overridden, say, by a return
clause.
collect
formcollect
appear elsewhere in this manual.
The word collecting
is a synonym for collect
, and
likewise for the other accumulation clauses.
append
formappend
.
nconc
formconcat
formvconcat
formcount
formnil
value.
sum
formmaximize
formmaximize
is executed zero times.
minimize
formAccumulation clauses can be followed by ‘into var’ to
cause the data to be collected into variable var (which is
automatically let
-bound during the loop) rather than an
unnamed temporary variable. Also, into
accumulations do
not automatically imply a return value. The loop must use some
explicit mechanism, such as finally return
, to return
the accumulated result.
It is valid for several accumulation clauses of the same type to accumulate into the same place. From Steele:
(cl-loop for name in '(fred sue alice joe june) for kids in '((bob ken) () () (kris sunshine) ()) collect name append kids) ⇒ (fred bob ken sue alice joe kris sunshine june)