The error-prone-ness of /while is certainly something everyone (including me) has run into-- namely forgetting /inc. I think that's probably the best reason to add this sort of syntax.

However, the proposed /for isn't really immune to "forgetting" /inc either. There are plenty of ways to still screw up the for, unless the 3rd argument is required.

Note also that there are some implementation problems in implementing this, specifically that a comma delimiter would not really work. Consider:

Code:
for (var %i = 1, %x = 2, %x < 10 && %y < 20, inc %x, inc %y) { ... }


Since each argument is evaluated as a command, and commands can have ","'s in them, and var in specific does, that becomes problematic. Since ";" is not used as syntax in any commands, it's probably better to use that, but it should have to be space delimited like "|":

Code:
for (var %x = 1, %y = 2 ; %x < 10 && %y < 20 ; inc %x | inc %y)


Of course, with all these syntax peculiarities we're probably introducing *more* error-prone-ness than simply using /while.


- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"