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}