iterator
ErrorsCollection

iterator

Synthesised documentation from type/Iterable type/HyperSeq type/RaceSeq type/Any type/Mu type/Seq type/PositionalBindFailover type/Junction

From type/Iterable

See Original text in context

method iterator(--> Iterator:D)

Method stub that ensures all classes doing the Iterable role have a method iterator.

It is supposed to return an Iterator.

say (1..10).iterator;

From type/HyperSeq

See Original text in context

method iterator(HyperSeq:D: --> Iterator:D)

Returns the underlying iterator.

From type/RaceSeq

See Original text in context

method iterator(RaceSeq:D: --> Iterator:D)

Returns the underlying iterator.

From type/Any

See Original text in context

multi method iterator(Any:)

Returns the object as an iterator after converting it to a list. This is the function called from the for statement.

.say for 3# OUTPUT: «3␤»

Most subclasses redefine this method for optimization, so it's mostly types that do not actually iterate the ones that actually use this implementation.

From type/Mu

See Original text in context

method iterator(--> Iterator)

Coerces the invocant to a list by applying its .list method and uses iterator on it.

my $it = Mu.iterator;
say $it.pull-one# OUTPUT: «(Mu)␤» 
say $it.pull-one# OUTPUT: «IterationEnd␤»

From type/Seq

See Original text in context

method iterator(Seq:D:)

If the Seq is not cached, returns the underlying iterator and marks the invocant as consumed. If called on an already consumed sequence, throws an error of type X::Seq::Consumed.

Otherwise returns an iterator over the cached list.

From type/PositionalBindFailover

See Original text in context

method iterator(PositionalBindFailover:D:{ ... }

This method stub ensure that a class implementing role PositionalBindFailover provides an iterator method.

From type/Junction

See Original text in context

multi method iterator(Junction:D:)

Returns an iterator over the Junction converted to a List.