Luke Palmer writes:
> I believe it could be programmed lazily. Like this:
>
> sub _outer_coro(*$first is context(Scalar),
> [EMAIL PROTECTED] is context(Scalar))
> is coroutine
> {
> if @rest {
> _outer_coro [EMAIL PROTECTED];
> }
> else {
> yield $first;
> }
> }
>
> sub outer([EMAIL PROTECTED] is context(Scalar))
> {
> <_outer_coro([EMAIL PROTECTED])>
> }
Which is of course wrong.
sub _outer_coro(@prev, @data) is coroutine
{
if (@data) {
_outer_coro([ @prev, @data[0] ], @data[1...])
}
else {
yield [EMAIL PROTECTED];
}
}
sub outer([EMAIL PROTECTED] is context(Scalar))
{
<_outer_coro([], @data)>
}
Luke