Daniel Keep wrote:
Don wrote:
[snip]
And in fact, a Tango2 floor plan would be a good idea, too. For example,
now that D2 supports foreach ranges, Tango containers will almost
certainly want to support them.
For reference, from tango.util.collection.model.Iterator:
public interface Iterator(V)
{
public bool more();
public V get();
int opApply (int delegate (inout V value) dg);
}
Basically, Tango's iterators use more (negation of empty,) and get
(which is next and head combined.)
This brings up a request I have for Andrei: please ensure there is an
actual interface for ranges (preferably enforced.) Compile-time duck
typing [1] is awesome, but sometimes you need run-time polymorphism.
There is a persistent misunderstanding about the two. They're not
competing. Duck typing as used in foreach and ranges does not preclude
definition and use of explicit interfaces and dynamic polymorphism.
Andrei