List & Vector Iteration
Iterating over a list
loop for ... inloop's accumulating clausesdolist- early exits
(loop for x in '(1 3 5)
collect (print x))
-
do is used for side effects
-
collect returns a list of results
-
more you can use instead: count, maximize, sum...
-
a bit more lisp-y:
(dolist (x '(1 3 5))
(when (> x 2)
(return x))
(print x))
Iterating over a Vector (arrays)
loop for ... across ...
(loop for x across #(0 2 4)
sum (print x))
One single construct to iterate on lists and vectors?
loop for ... being the element of ...coerceto a list: efficient.for:for ... overin quicklisp: speed penalty.