Sha256: 8944f0da91ae094b4a5dbbc150dca89713cfc52d6591ebee66661d8d3f5659a2

Contents?: true

Size: 573 Bytes

Versions: 73

Compression:

Stored size: 573 Bytes

Contents

package ListOps;

use strict;
use warnings; 

sub map { 
   my ($func, $list) = @_;

   my @result; 
   foreach my $elem (@$list) {
      push @result,
         $func->($elem);
   }

   return \@result; 
}

sub reduce {
   my ($func, $list) = @_;
   
   my $result = shift @$list;
   foreach my $elem (@$list) {
      $result = $func->($result, $elem);
   }

   return $result;
}

sub length {
   my $list = shift; 
   
   return _length($list, 0);
}

sub _length {
   my ($list, $n) = @_; 

   return _length($list, $n + 1) 
      if shift @$list;
   
   return $n;
}

1;

Version data entries

73 entries across 73 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.179 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.178 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.177 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.176 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.175 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.174 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.173 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.172 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.171 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.170 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.169 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.167 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.166 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.165 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.164 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.163 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.162 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.161 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.160 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm