


The C-style for loop is not used very heavily in Mythryl, but another form of loop construct, the foreach, comes in very handy. The foreach loop is not actually a compiler construct at all, just a library routine. The foreach loop iterates over the members of a list:
#!/usr/bin/mythryl
foreach ["abc", "def", "ghi"] .{
printf "%s\n" #i;
};
Note the dot before the curly brace and the sharp before the i loop variable. This syntax looks a little odd at first blush. It will make more sense once we have discussed Mythryl thunk syntax.
When run, the above does just what you probably expect:
linux$ ./my-script
abc
def
ghi
linux$
The foreach loop is more common than the for loop in Mythryl code primarily because lists are more common than arrays. Mythryl has a profusion of library routines which construct or transform lists. For example the .. operator constructs a list containing a sequence of integers:
linux$ my
eval: 1 .. 10;
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
eval: foreach (1..10) .{ printf "%d\n" #i; };
1
2
3
4
5
6
7
8
9
10
()
eval: ^D
linux$


