On 06/02/2010 08:04 PM, bearophile wrote:
Andrei Alexandrescu:
No need to write enumerate() - it's zip(iota(0, size_t.max), r).

What does it happen if someone gives you the sequence produced by:
zip(r, iota(0, size_t.max))
?
You have can require an adaptor because it's not the standard convention.
While enumerate() always gives you indexes at the first place. And the 
index/item fields have a standard name that you remember in your code.

Finding the minimal number of pieces to do something is useful, but sometimes 
if an operation is common enough it can be useful to give it a new name. It's 
called chunking.

Inside an expression that can contain other stuff do you prefer to use:
zip(iota(0, size_t.max), items)
or
enumerate(items)
?
The second makes the expression shorter and more readable in its purpose.

Bye,
bearophile

My point was that there's no need to sit down and implement functionality. Just write

auto enumerate(R)(R r) if (isInputRange!R)
{
    return zip(iota(0, size_t.max), r);
}


Andrei

Reply via email to