foreach
FOREACH data template (library procedure)
(FOREACH data1 data2 ... template)
command. Evaluates the template list repeatedly, once for each
member of the data list. If more than one data list are given,
each of them must be the same length. (The data inputs can be
words, in which case the template is evaluated once for each
character.)
In a template, the symbol ?REST represents the portion of the
data input to the right of the member currently being used as
the ? slot-filler. That is, if the data input is [A B C D E]
and the template is being evaluated with ? replaced by B, then
?REST would be replaced by [C D E]. If multiple parallel slots
are used, then (?REST 1) goes with ?1, etc.
In a template, the symbol # represents the position in the data
input of the member currently being used as the ? slot-filler.
That is, if the data input is [A B C D E] and the template is
being evaluated with ? replaced by B, then # would be replaced
by 2.