Eliminace cyklu for použitím funkce range
Oba fragmenty se vyhodnotí stejně. Příklad je ilustrační; v tomto jednoduchém případě by samozřejmě nejlepší byla přímá iterace přes pole.
Fragmenty kódu
Varianta s for
{let ls := asList("a","b","c","d","e")}
{let i := 0}
{for lt(i, ls.length)}
{list(ls, i)}
{let i := i + 1}
{/for}
Varianta s while
{let ls := asList("a","b","c","d","e")}
{while range(0, ls.length - 1)}
{list(ls, _)}
{/while}