Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: All Combinations of three arrays.

by fizbin (Chaplain)
on Aug 26, 2005 at 16:54 UTC ( #486925=note: print w/replies, xml ) Need Help??


in reply to All Combinations of three arrays.

I haven't bought Higher Order Perl yet, but I've looked at the code examples and have been inspired. With that in mind:
# combines two pairs into a longer pair sub combine_codes_and_descriptions { my ($sofar, $next) = @_; if (!defined($sofar)) {return $next;} [$sofar->[0] . $next->[0], $sofar->[1] . ", " . $next->[1]]; } sub multi_dim_reduce { # $sofar optional my ($actionsub, $AoA, $combinesub, $sofar) = @_; if (@$AoA) { my $this_array = shift @$AoA; for my $elem (@$this_array) { my $subarray = [ @$AoA ]; multi_dim_reduce($actionsub, $subarray, $combinesub, $combinesub->($sofar,$elem)); } } else { $actionsub->($sofar); } } # The main event @data = ( [ [1, "Darth Vader"], [3, "Luke Skywalker"], [5, "Obi Wan Kenobi"], ],[ [0, "Lighsabre"], [5, "Blaster"], [9, "Rocket launcher"], ],[ [10, "Dagobah"], [14, "Kashyyyk"], ], ); multi_dim_reduce(sub {my ($c,$d) = @{$_[0]}; print "$c\t$d\n";}, [ @data ], \&combine_codes_and_descriptions);
-- @/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/; map{y/X_/\n /;print}map{pop@$_}@/for@/

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://486925]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2020-06-06 15:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you really want to know if there is extraterrestrial life?



    Results (41 votes). Check out past polls.

    Notices?