Nick Treleaven Wrote:

> There's a C++0x proposal for a range-based 'for' statement:
> http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html
> 
> The upcoming GCC 4.6 C++ compiler changes list support for this:
> http://gcc.gnu.org/gcc-4.6/changes.html
> 
> I think the syntax could be useful for D to shorten and improve on the 
> status quo a little. Here's the C++ example:
> 
> int array[5] = { 1, 2, 3, 4, 5 };
> for (int& x : array)
>   x *= 2;
> 
> Currently D has:
> 
> int array[5] = [1, 2, 3, 4, 5];
> foreach (ref x; array)
>   x *= 2;
> 
> I think this is better:
> 
> for (ref x : array)
>   x *= 2;
> 
> Apart from being 4 chars shorter, I think it looks more natural using the 
> ':' instead of ';'. A lesser benefit is it allows reuse of the 'for' 
> keyword, making the 'foreach' keyword unnecessary.
> 
> Maybe this would be acceptable for D?

No, 1) it's too late to change it. 2) the syntax comes from Java. It would be 
embarrasing to admit that Java did something right.

 - G.W.

Reply via email to