foreach

Andrew Edwards via Digitalmars-d digitalmars-d at puremagic.com
Thu Jun 12 11:55:52 PDT 2014


On 6/12/14, 2:40 PM, Steven Schveighoffer wrote:
> On Thu, 12 Jun 2014 13:36:20 -0400, Ary Borenszweig
> <ary at esperanto.org.ar> wrote:
>
>> On 6/12/14, 2:11 PM, Steven Schveighoffer wrote:
>>> On Thu, 12 Jun 2014 11:00:11 -0400, Manu via Digitalmars-d
>>> <digitalmars-d at puremagic.com> wrote:
>>>
>>>> I often find myself wanting to write this:
>>>>   foreach(; 0..n) {}
>>>> In the case that I just want to do something n times and I don't
>>>> actually care about the loop counter, but this doesn't compile.
>>>
>>> The compiler has to assign a variable to this somehow so it can
>>> increment and test. Naming it isn't the worst thing in the world. As
>>> others have said, pick an uncommon name.
>>>
>>>>
>>>> You can do this:
>>>>   for(;;) {}
>>>>
>>>> If 'for' lets you omit any of the loop terms, surely it makes sense
>>>> that foreach would allow you to omit the first term as well?
>>>> I see no need to declare a superfluous loop counter when it is unused.
>>>
>>> But that doesn't increment a variable and test it. If you wanted to loop
>>> for N times, you need a variable.
>>
>> The compiler needs a variable. The programmer doesn't.
>
> In response to both you and HS Teoh, so what? It's not hard to create a
> variable, just do it. This seems like the most insignificant time-saving
> feature that will really have almost no impact on anybody. It's not
> worth the risk it adds some bug to the compiler to add this feature.
>
> -Steve

Steven, there is not one thing that makes D great. There are many. 
Dissected and viewed individually most people would regard the 
insignificant: much like you are doing here. But the aggregated whole 
that is D today, is a thing of beauty. And it wouldn't be that way were 
it if not for these ostensibly trifling features.

While I do not see this as a showstopper for anyone, including, it 
doesn't warrant such vehement attack. It is a convenience feature that 
improves the overall experience of the D programmer. A plus in my mind 
and worthy of the time required to discuss, agree upon a solution and 
implement.


More information about the Digitalmars-d mailing list