Please vote once and for good: range operations
Ary Borenszweig
ary at esperanto.org.ar
Wed Jan 28 22:09:55 PST 2009
Andrei Alexandrescu escribió:
> 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.
Shouldn't the user think the same with "head" or "front"?
I think the problem is "next" in this case: it should be "moveToNext" or
something that shows that you are changing the input, not just
requesting the next element in the range.
But keep "next". Once the user starts using ranges, he'll understand the
terminology, which is pretty straightforward.
I vote for first/last.
More information about the Digitalmars-d
mailing list