BrowserREPL-button-tip-on BrowserREPL-button-tip-off

EditButtonTip 2024-05-18

role Sequence

Common methods of sequences

role Sequence does PositionalBindFailover { }
Code

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:D:)
Code

Stringifies the cached sequence.

method Stringy§

multi method Stringy(::?CLASS:D:)
Code

Calls .Stringy on the cached sequence.

method Numeric§

method Numeric(::?CLASS:D:)
Code

Returns the number of elements in the cached sequence.

method AT-POS§

multi method AT-POS(::?CLASS:D: Int:D $idx)
multi method AT-POS(::?CLASS:D: int $idx)
Code

Returns the element at position $idx in the cached sequence.

method EXISTS-POS§

multi method EXISTS-POS(::?CLASS:D: Int:D $idx)
multi method EXISTS-POS(::?CLASS:D: int $idx)
Code

Returns a Bool indicating whether there is an element at position $idx in the cached sequence.

method eager§

method eager(::?CLASS:D: --> List:D)
Code

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 $s = lazy 1..5;

say $s.is-lazy; # OUTPUT: «True␤»
say $s.eager;   # OUTPUT: «(1 2 3 4 5)␤»

say $s.eager;
CATCH {
    when X::Seq::Consumed {
        say 'Throws exception if already consumed';
    }
}
# OUTPUT: «Throws exception if already consumed␤»
Code

method fmt§

method fmt($format = '%s', $separator = ' ' --> Str:D)
Code

Formats the cached sequence.

method gist§

multi method gist(::?CLASS:D:)
Code

Returns the gist of the cached sequence.

Class relation diagram§

Rakudo Type Relation for Sequence Sequence Sequence PositionalBindFailover PositionalBindFailover Sequence->PositionalBindFailover does