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