Next: iklib syntaxes loops dotimes, Previous: iklib syntaxes loops do*, Up: iklib syntaxes loops [Index]
dolist
syntaxIterate of the list returned by ?list-expr binding, at each iteration, the next item from the list to ?var; evaluate the ?body forms in the region of the binding.
If ?result-expr is present: it is evaluated, in the region of ?var, to produce the return values. If ?result-expr is not present: the syntax use returns no values.
If ?list-expr returns null and ?result-expr is present: when ?result-expr is evaluated, ?var is bound to null.
This syntax meant to be similar to the Common Lisp syntax of the same name.
(import (vicare) (vicare checks)) (with-result (dolist (A '(1 2 3)) (add-result A))) ⇒ (#!void (1 2 3)) (with-result (dolist (A '(1 2 3) A) (add-result A))) ⇒ (() (1 2 3)) (with-result (let ((rv #f)) (dolist (A '(1 2 3) rv) (add-result A) (when (even? A) (set! rv A))))) ⇒ (2 (1 2 3)) (with-result (dolist (A '() A) (add-result A))) ⇒ (() ())