www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Ranges

reply %u <wfunction hotmail.com> writes:
I've learned that an InputRange needs three methods to enumerate a collection:

  void popFront()
   property T front()
   property bool empty()

but is that really necessary? Why not just have:

  bool next(out T value);

?
Wouldn't this be much cleaner? Even the .NET implementation of IEnumerator
only has two methods used for enumeration (MoveNext() and Current), instead of
three.
Feb 07 2011
parent reply "Lars T. Kyllingstad" <public kyllingen.NOSPAMnet> writes:
On Tue, 08 Feb 2011 05:03:34 +0000, %u wrote:

 I've learned that an InputRange needs three methods to enumerate a
 collection:
 
   void popFront()
    property T front()
    property bool empty()
 
 but is that really necessary? Why not just have:
 
   bool next(out T value);
 
 ?
 Wouldn't this be much cleaner? Even the .NET implementation of
 IEnumerator only has two methods used for enumeration (MoveNext() and
 Current), instead of three.

Related discussion: http://www.digitalmars.com/d/archives/digitalmars/D/getNext_113217.html -Lars
Feb 07 2011
parent %u <wfunction hotmail.com> writes:
 Related discussion:
 http://www.digitalmars.com/d/archives/digitalmars/D/getNext_113217.html

Oh sorry; thank you for the link!
Feb 08 2011