method iterator

Documentation for method iterator assembled from the following types:

class HyperSeq

From HyperSeq

(HyperSeq) method iterator

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

Returns the underlying iterator.

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;

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

class Seq

From Seq

(Seq) method iterator

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

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.

class RaceSeq

From RaceSeq

(RaceSeq) method iterator

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

Returns the underlying 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.