← index

Iterator

inherits Object · defined at core/02-iterate.qn:492

An external, pull-style iterator (hasNext?/next) over any each:-able.

Backed by a fiber: running the iterable's each: inside a fiber turns each element into a ^> yield, so elements can be pulled one at a time. One element of look-ahead lets hasNext? work; done-ness is decided by the fiber finishing, not by a sentinel value, so nil elements are fine. Obtain one with .iterator rather than constructing it directly.

var it = #(10 20).iterator; it.next; it.hasNext?    "* -> true

Class methods

over:

An Iterator pulling from any iterable's each: (what .iterator answers).

core/02-iterate.qn:496

Instance methods

advance

Pull the next element from the fiber into the look-ahead slot; flips hasNext? off when the fiber finishes.

core/02-iterate.qn:507

hasNext?

True when another element is available, i.e. next will succeed.

core/02-iterate.qn:513

init

Prime the one-element look-ahead by advancing to the first element.

core/02-iterate.qn:503

next

The next element; throws StopIteration when the iterator is exhausted.

core/02-iterate.qn:516