Based on a side conversion EvidenceDiscussion, perhaps we don't need a dedicated FOR loop construct built into the language. It can be a library function, and syntax optimized for such looping functions gives us other possible short-cuts. [Under Construction] As far as FOR loops, like I mentioned elsewhere, a simple base library function used inside a WHILE may also suffice: while(for(&i, from=1, to=400, step=2)) {...} // "full" keyword version while(for(&i, 1,400,2)) {...} // positional version [How would such a library function work? The state of i needs to be carried somehow, and it isn't passed ''into'' for(). How's that state passed? -DavidMcLean] You are correct; I adjusted it. [Aha. Yep, that version will work, although it does demand the language provide at least explicit support for pass-by-reference, a feature I'd typically prefer to avoid in favour of purely providing pass-by-value-where-the-value-might-be-a-reference as most OO languages currently do. Still, no show-stoppers; that's a perfectly fine design. -DavidMcLean] Note that in some languages, you declare pass-by-reference on the definition side such that we may not need to see "&". Also, if the language makes '''"while" implicit''', we'd have shorter ways to "custom" or library-based loop functions. (EditHint: consider forking to another topic.) x > y {...} // a language where "while" key-word not needed: [Boolean expression] {...} while(x > y) {...} // filler "while" function for backward compatibility for(i, 1, 400) {...} // A compact for-loop construct using the "for" function. for(i, from=1, to=400) {...} // key-word parameter version (some langs allow both variations) miffle(a, b) {...} // We can make custom loop functions. while (miffle(a,b)) {...} // traditional version of the above line; would still work. Note that this is a relatively minor issue. However, if somebody considers designing a new language, this is an idea to float.