The recursion was harder than I expected (but just as short)!
use strict;
use warnings;
my @data = (1, 2, 3);
$, = "\n";
print trans1(\@data,2);
BEGIN{
my $seq =[
sub {map {$_ + 1} @_},
sub {map {log($_)} @_},
sub {map {$_ * 3} @_},
];
sub trans1 {
my ($x, $n) = @_;
return $seq->[ 0]->(@$x) if $n == 0;
return $seq->[$n]->( trans1($x, $n-1, $seq) );
}
}
|