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.159 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.158 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.157 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.156 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.155 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.154 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.153 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.152 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.151 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.150 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.149 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.148 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.147 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.146 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.145 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.144 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.143 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.142 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.141 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm
trackler-2.2.1.140 tracks/perl5/exercises/list-ops/.meta/solutions/ListOps.pm