does PositionalBindFailover
This role implements a series of methods for converting sequences and accessing their elements. These methods should work on all sequences: serial Seq, ordered parallel HyperSeq, and unordered parallel RaceSeq.
These methods have in common that they all access the underlying iterator if the sequence has not been cached yet. Therefore they will throw an error of type X::Seq::Consumed if called on a Seq
that was already consumed.
Methods §
method Str §
multi method Str(::?CLASS:)
Stringifies the cached sequence.
method Stringy §
multi method Stringy(::?CLASS:)
Calls .Stringy
on the cached sequence.
method Numeric §
method Numeric(::?CLASS:)
Returns the number of elements in the cached sequence.
method AT-POS §
multi method AT-POS(::?CLASS: Int )multi method AT-POS(::?CLASS: int )
Returns the element at position $idx
in the cached sequence.
method EXISTS-POS §
multi method EXISTS-POS(::?CLASS: Int )multi method EXISTS-POS(::?CLASS: int )
Returns a Bool
indicating whether there is an element at position $idx
in the cached sequence.
method eager §
method eager(::?CLASS: --> List)
Returns an eagerly evaluated List based on the invocant sequence, and marks it as consumed. If called on an already consumed Seq
, throws an error of type X::Seq::Consumed.
my = lazy 1..5; say .is-lazy; # OUTPUT: «True» say .eager; # OUTPUT: «(1 2 3 4 5)» say .eager;CATCH # OUTPUT: «Throws exception if already consumed»
method fmt §
method fmt( = '%s', = ' ' --> Str)
method gist §
multi method gist(::?CLASS:)
Returns the gist of the cached sequence.
Type Graph §
Routines supplied by role PositionalBindFailover §
Sequence does role PositionalBindFailover, which provides the following routines:
(PositionalBindFailover) method cache §
method cache(PositionalBindFailover: --> List)
Returns a List based on the iterator
method, and caches it. Subsequent calls to cache
always return the same List
object.
(PositionalBindFailover) method list §
multi method list(::?CLASS:)
Returns a List based on the iterator
method without caching it.
(PositionalBindFailover) method iterator §
method iterator(PositionalBindFailover:)
This method stub ensure that a class implementing role PositionalBindFailover
provides an iterator
method.