Sha256: cfdfc7a28df149d8df1e5b83d48a56acc609386ab3f1cf8765b58c7a1c52dc39

Contents?: true

Size: 573 Bytes

Versions: 323

Compression:

Stored size: 573 Bytes

Contents

package Example;

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

323 entries across 323 versions & 1 rubygems

Version Path
trackler-2.2.1.105 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.104 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.103 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.102 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.101 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.100 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.99 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.98 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.97 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.96 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.95 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.94 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.93 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.92 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.91 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.90 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.89 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.88 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.87 tracks/perl5/exercises/list-ops/Example.pm
trackler-2.2.1.86 tracks/perl5/exercises/list-ops/Example.pm