method iterator

Documentation for method iterator assembled from the following types:

role Iterable

From Iterable

(Iterable) method iterator

Defined as:

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;

class Any

From Any

(Any) method iterator

Defined as:

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.

class HyperSeq

From HyperSeq

(HyperSeq) method iterator

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

Returns the underlying iterator.

class Mu

From Mu

(Mu) method iterator

Defined as:

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␤»

role PositionalBindFailover

From PositionalBindFailover

(PositionalBindFailover) method iterator

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

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

class RaceSeq

From RaceSeq

(RaceSeq) method iterator

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

Returns the underlying iterator.

class Seq

From Seq

(Seq) method iterator

method iterator(Seq:D: --> Iterator: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.