I would love to see this added, but maybe with a "," delimiter instead of ";" to match the rest of the language:

Code:
for (var %x = 1,%x <= 10,inc %x) {
  echo -a %x
}


Output:

1
2
3
4
5
6
7
8
9
10

I also think the first parameter for for () should accept all variations of the var/set commands:

Code:
for (var %x = 1,%x <= 10,inc %x) {
  echo -a %x
  ; %x is local to the for loop so this will display.
}
echo -a %x
; this will throw an error unless %x is a global variable, as the local variable %x above was unset upon the termination of the loop.


Code:
for (set -u %x 1,%x <= 10,inc %x) {
  echo -a %x
}
echo -a %x
; Both %x 's will display but %x will unset at the end of the current code block.


Code:
for (set %x 1,%x <= 10,inc %x) {
  ; %x is global here and will return a value until it is unset. 
}