in reply to Re: NestedLoops (Algorithm::Loops) and Iterators
in thread NestedLoops (Algorithm::Loops) and Iterators
That's the same thing as:
$iter_prod = NestedLoops([ sub { iter(qw(a b c) }, sub { iter(qw(x y z) }, ]);
Wasn't the whole point to avoid flattening the iterator and to provide arbitrary nesting? Your solution flattens, and the depth is hardcoded as a sequence of calls to iter_prod.
Note: NestedLoops's iterator returns an array rather than an array ref.
Update: Your solution does support arbitrary depth:
my $iter = do { my $done = 0; sub { $done++ ? undef : 1 } }; iter_prod($iter, ...) if ...; iter_prod($iter, ...) if ...;
With NestedLoops, you'd do:
my @iters; push(@iters, ...) if ...; push(@iters, ...) if ...;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: NestedLoops (Algorithm::Loops) and Iterators
by tmoertel (Chaplain) on Jul 27, 2005 at 04:06 UTC |