in reply to Creating tuples based on sets
Update: I missed the part about needing arbitrarily sized tuples. This only groups in sets of two...my bad. :(
Original message follows...
Ah, the joys of dot products. No need for recursion:
#!/usr/bin/perl -w @set = qw(A B C); print join("\n", map(join(',', @$_), @{&make_tuples(\@set, \@set)})); sub make_tuples { my($set1, $set2) = @_; my @product; foreach my $x (0 .. $#$set1) { foreach my $y (0 .. $#$set2) { push(@product, [$set1->[$x], $set2->[$y]]); } } \@product; }
I daresay I just answered a homework question for you, but so be it.
Matt
In Section
Seekers of Perl Wisdom