Infer range
In Dyon, the range of a mathematical loop can be inferred from the loop body.
When iterating over a list, you can leave out start and end:
#![allow(unused)] fn main() { list := [1, 2, 3] for i { println(list[i]) } }
This is equivalent to:
#![allow(unused)] fn main() { list := [1, 2, 3] for i len(list) { println(list[i]) } }
For nested loops, the indices must follow the same order as the loops:
#![allow(unused)] fn main() { list := [[[1, 2], [3, 4]], [[5, 6], [7, 8]]] for i { for j { for k { println(list[i][j][k]) } } } }