6.16.1 range

The following functions produce iterators over integers:

Iterable_int range(int n)

returns an iterable that produces the integers 0,...,n-1;

Iterable_int range(int n, int m, int skip=1)

returns an iterable that produces the integers n, n+skip, ..., m if (m-n)/skip >= 0, and otherwise produces no integers.

Generally speaking, for (int i : range(n)) is equivalent to for (int i : sequence(n)). The latter uses O(n) memory but is usually faster. The former uses O(1) memory but is slower. If an iterator is specifically required, however, range(n) is faster than range(sequence(n)) (as well as being more memory-efficient).