Please vote once and for good: range operations

Vladimir Panteleev thecybershadow at gmail.com
Thu Jan 29 05:03:29 PST 2009


On Thu, 29 Jan 2009 06:25:58 +0200, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> 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.

I don't think that "next" is an appropriate name here. Since it is an  
action, it should be named as one - "next" sounds more like a function  
(which doesn't modify the instance). Have you considered "forward"?

-- 
Best regards,
  Vladimir                          mailto:thecybershadow at gmail.com



More information about the Digitalmars-d mailing list