I would like to point out, that it is really the **const seq** which is causing most of the slowdown in the original version (and a const seq does not make much sense, if you think about it and should maybe be complained about by the compiler). If you use a var seq instead, the difference to the var array is much less pronounced. This takes 0.9 sec for 1_000_000 iterations: var NE = @[8, 2, 13, 4, 5, 7, 8, 3, 9, 12, 7, 8, 3, 9, 12] var Directions = [NE, NE, NE, NE]
while this takes 0.6 sec: var NE = [8, 2, 13, 4, 5, 7, 8, 3, 9, 12, 7, 8, 3, 9, 12] var Directions = [NE, NE, NE, NE] Compare this to 11 vs. 1 sec for the const case mentioned earlier.