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
```perl6
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
```perl6
method while(
&cond,
:$skip!
) returns Seq
```
with the :skip adverb
### method until
```perl6
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
```perl6
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