Orc does not have any explicit looping constructs. Most of the time, where a loop might be used in other languages, Orc programs use one of two strategies:
When the iterations of the loops can occur in parallel, write an expression
that expands the data into a sequence of publications, and
use a sequential operator to do something for each publication. This is the strategy
that uses functions like each, repeat, and upto.
When the iterations of the loops must occur in sequence, write a tail
recursive function that iterates over the data. Any loop can be rewritten as a
tail recursion. Typically the data of interest is in a list, so one of the standard
list functions, such as foldl, applies. The library also defines a
function while, which handles many of the common use cases of
while loops.