What do you mean it evaluates all the parameters?
for (initializer, conditional, incrementer) {
...
}
The initializer should only be evaluated the first time the loop is run. The conditional before each run, and the incrementer after each run. Maybe I'm missing something but how is that different than:
var %i = 0 ;the initializer
while (conditional) {
...
inc %i ;the incrementer
}
Here for example, just going on shortest code, which in a parsed language usually means fastest:
for (var %i = 0, %i <100, inc %i) echo -s %i
vs
var %i = 0
while (%i < 100) {
echo -s %i
inc %i
}
I really fail to see how the while loop should ever be faster, it is messier, and larger. I really don't know what you mean by "reevaluating each parameter" if you could be more descriptive, perhaps I can better understand what you mean.