Please vote once and for good: range operations

Bill Baxter wbaxter at gmail.com
Wed Jan 28 20:40:47 PST 2009


On Thu, Jan 29, 2009 at 1:25 PM, 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.

Can't you just think of it as the first of the range, not the first of
everything?

If you ask me who is first in line, I'm going to tell you who is the
first in line right now, currently.  Not who was first back when the
line first formed.  This seems similar to me.  So not confusing at all
if you think of it that way.  The range is not the container.

--bb



More information about the Digitalmars-d mailing list