Please vote once and for good: range operations

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed Jan 28 20:25:58 PST 2009


Simen Kjaeraas wrote:
> Andrei Alexandrescu wrote:
> 
>> So please let's vote once and for all.
>>
>> Andrei
> 
> Do let's. My first vote goes to first/last, with head/toe at second place.
> 
> -- 
> Simen

Ok, after looking at my code I discovered a huge problem with "first". 
("Last" is cool.) If all you do is implement them and use them with 
foreach, fine. But if you need to call them manually (which is the case 
sometimes), you get really badly interacting terms there. Look at this, 
taken from real code (the filter function):

while (!_input.empty && !pred(_input.first)) _input.next;

I can see the putative user scratching their head: "Ok, so I start 
iteration with the first element, then I move to the next one... but 
then why the heck am I looking at the first again?"

"First" must go.


Andrei



More information about the Digitalmars-d mailing list