The loop API is mostly compatible with Taylor Campbell's
foof-loop,
but the iterator API is different and subject to change.
(loop [name] (vars ...) [=> result] body ...)
(for ((vars ...) ...) body ...)
(for lp ((vars ...) ...) body ...)
Utility syntax for the common case of a loop which has only
for
clauses.
(for var [pair] (in-list ls [cdr]))
Basic list iterator.
(for elts [pairs] (in-lists lol [cdr [done?]]))
Iterator from Taylor R. Campbell. If you know the number of lists
ahead of time it's much more efficient to iterate over each one
separately.
(define-in-indexed in-type in-type-reverse length ref)
(for var [index] (in-vector vec))
(for var [index] (in-vector-reverse vec))
(for ch [cursor] (in-string str))
(for ch [cursor] (in-string-reverse str))
(for substr (in-substrings k str))
(in-substrings ((ch) (k str)) next . rest)
(for ch (in-port [input-port [reader [eof?]]]))
(for ch (in-file [input-port [reader [eof?]]]))
(for x (up-from [start] [(to limit)] [(by step)]))
(for x (down-from [start] [(to limit)] [(by step)]))
(for x [pair] (listing expr))
(for x [pair] (listing-reverse expr))
(for x [pair] (appending expr))
(for x [pair] (appending-reverse expr))
(for x (multiplying expr))