in reply to NestedLoops (Algorithm::Loops) and Iterators

I'm confused although others here may not be. It would help me if you could give a simple example of input and output and an explanation of how your iterator works. The code would be great, if short enough. Given my understanding of the word "permutation", I can't get past the statement that an iterator may be infinite...
  • Comment on Re: NestedLoops (Algorithm::Loops) and Iterators

Replies are listed 'Best First'.
Re^2: NestedLoops (Algorithm::Loops) and Iterators
by mrborisguy (Hermit) on Jul 26, 2005 at 22:31 UTC

    Okay, say I have three iterators, $iter1, $iter2, $iter3. I'll demonstrate an example of each by just using them:

    while( defined( my $item = $iter1->() ) { print "1: $item\n"; } while( defined( my $item = $iter2->() ) { print "2: $item\n"; } while( defined( my $item = $iter2->() ) { print "3: $item\n"; } #outputs: 1: 1 1: 2 1: 3 2: y 2: n 3: 7 3: 14 3: 21 3: 28

    So, what I want to do is something like:

    $nl_iter = NestedLoops( \@Loops ); # some fancy magic for \@Loops while( my @items = $nl_iter->() ) { print join ", " @items; print "\n"; } #outputs: 1, y, 7 1, y, 14 1, y, 21 1, y, 28 1, n, 7 1, n, 14 ... 3, n, 21 3, n, 28

        -Bryan