In List§
See primary documentation in context for routine eager
multi method eager(List:D: --> List:D)
Evaluates all elements in the List
eagerly, and returns them as a List
.
my \ll = (lazy 1..5).cache; say ll[]; # OUTPUT: «(...)» say ll.eager # OUTPUT: «(1 2 3 4 5)»
In role Sequence§
See primary documentation in context for method eager
method eager(::?CLASS:D: --> List:D)
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»
In Any§
See primary documentation in context for method eager
method eager() is nodal
Interprets the invocant as a List
, evaluates it eagerly, and returns that List
.
my $range = 1..5; say $range; # OUTPUT: «1..5» say $range.eager; # OUTPUT: «(1 2 3 4 5)»