NAME
Seq::Bounded
SYNOPSIS
use Seq::Bounded;
my $infinite-squares = { 1, 2 ... * }.map(* ** 2);
my $three-digit-squares = ($infinite-squares but Bounded)
.while(:skip, * < 100)
.until(* >= 1000);
DESCRIPTION
This role, when applied to a (possibly infinite) sequence, allows adding bounds conditions based the values of the sequence. This is useful when an infinite Seq is mapped by a function - in such a case, it could be inconvenient to specify the bound in the sequence generator.
Applying this role adds the methods while
and until
. An optional adverb :skip
converts the bound from the end of the Seq to the start.
The role only applies to classes (and objects) of type Seq
or its subclasses.
METHODS
method while
method while(
&cond
) returns Seq
while tests the given condition against each member of the sequence and terminates the sequence when the condition is no longer satisfied.
method while
method while(
&cond,
:$skip!
) returns Seq
with the :skip adverb
method until
method until(
&cond
) returns Seq
until tests the given condition against each member of the sequence and terminates the sequence when the condition is satisfied.
method until
method until(
&cond,
:$skip!
) returns Seq
with the :skip adverb
LICENSE
This file is licensed under the same terms as perl itself.
AUTHOR
Doug Schrag dmaestro@cpan.org