http://www.perlmonks.org?node_id=1039772


in reply to Transform Sequence Problem

I like your solution. You may save some code using a recursion, but it would require more memory and probably be slower. It is a matter of opinion which would be clearer.
Bill

Replies are listed 'Best First'.
Re^2: Transform Sequence Problem
by BillKSmith (Monsignor) on Jun 22, 2013 at 15:32 UTC
    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) ); } }
    Bill