Please vote once and for good: range operations

Chad J gamerchad at __spam.is.bad__gmail.com
Thu Jan 29 17:06:39 PST 2009


Denis Koroskin wrote:
> Vladimir Panteleev Wrote:
> 
>> 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
> 
> Agree, "advance" would be a better name, though (imo).

Same, it seems BETTER.  Though, it seems like it's suboptimal as well.
As I understand it we aren't so much moving rightward a head that's
reading a tape, but instead we are incrementally chopping off the
leftmost elements until none are left.  So it is possible (though not
intuitive) to draw analogies and write metaphors:  we are advancing our
knife each time we chop off a bit of carrot.

Anyways, while technically incorrect as far as I can tell, it isn't
aesthetically displeasing to me, so in some odd way I am alright with
next.

Hmmm... maybe "chop" is a good word for this...

- Chad



More information about the Digitalmars-d mailing list