Stop doubting and start believing.
As it has been added as an example in the Pugs distribution, you can always see the latest version hereuse v6; sub lazy_merge (@list is rw) returns Ref { my $last = 0; my $by_n = sub { my ($n, $k) = (shift(@_), 0); return { @_[0] ?? $ +k += $n :: $k } }; for @list { $_ = $by_n( $_ ) } return sub { my $low; for ( @list ) { my $val = $_(); $val = $_( 'next' ) if $val <= $last; $low = $val if (! defined $low) || ($val < $low); } return $last = $low; }; } my $end = @*ARGS[0] // 22; my @prime = (2, 3, 5); my $next = lazy_merge( @prime ); for 1..$end { say $next() };
Cheers - L~R
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Perl6 Infinite Lazy Lists
by stvn (Monsignor) on May 02, 2005 at 20:30 UTC | |
by dpuu (Chaplain) on May 03, 2005 at 01:14 UTC | |
by stvn (Monsignor) on May 03, 2005 at 01:33 UTC | |
by Errto (Vicar) on May 03, 2005 at 00:34 UTC | |
by stvn (Monsignor) on May 03, 2005 at 01:30 UTC | |
by geoffb (Novice) on Jun 04, 2005 at 23:15 UTC |