Produces the elements of a stream. For example, this class has an Iterator that produces the integers from min to max:

class IntegerIterable(Integer min, Integer max) 
       satisfies {Integer*} {
   iterator() => object satisfies Iterator<Integer> {
       variable value i = min;
       next() => i<=max then i++ else finished;
   };
}

An iterator is exhausted when next() produces the value finished.

By: Gavin
See also Iterable

no type hierarchy

no supertypes hierarchy

Inherited Attributes
Attributes inherited from: Object
Methods
nextSource Codeshared formal Element|Finished next()

The next element, or finished if there are no more elements to be iterated.

Repeated invocations of next() for a given iterator must eventually produce any given element of the stream to which the iterator belongs. A given iterator must not produce the same element of the stream more often than the element occurs in the stream.

If an invocation of next() for a given iterator produces the value finished, then every future invocation of next() for that iterator must also produce the value finished.

An iterator for a nonfinite stream may never produce the value finished.

An iterator for a nonempty stream must produce at least one value of type Element.

Inherited Methods
Methods inherited from: Object