Super-dee-duper D features

kris foo at bar.com
Mon Feb 12 23:13:44 PST 2007


janderson wrote:
> Andrei Alexandrescu (See Website For Email) wrote:
> 
>> James Dennett wrote:
>>
>>> C++, of course, has std::for_each(e.begin(), e.end(), do_x);
>>> in its library (though that's weaker than it could be because
>>> of lack of support for convenient anonymous functions/lambdas).
>>>
>>> C++0x is very likely to have for(v: e).  It's implemented
>>> in ConceptGCC already. Java already has essentially that,
>>> as does C#.  This really doesn't set D apart (but at least
>>> D isn't falling behind here).
>>
>>
>> BTW, D might soon have simultaneous iteration that will blow away all 
>> conventional languages:
>>
>> foreach (i ; coll1) (j ; coll2)
>> {
>>   ... use i and j ...
>> }
>> continue foreach (i)
>> {
>>   ... coll2 finished; use i ...
>> }
>> continue foreach (j)
>> {
>>   ... coll1 finished; use j ...
>> }
>>
>> Andrei
> 
> 
> Maybe its a bit to late here however this syntax seems very special 
> case.  Can you explain why its necessary and how we would use it.  How 
> would we do this currently (without meta programming)?
> 
> -Joel

You'd typically use something like an interleaved iterator. Tango has 
such an animal for traversing collections.



More information about the Digitalmars-d mailing list