Perl で fold
sub fold(&@) { my($f, @list) = @_; my $s = shift @list; while ( scalar @list ) { $s = $f->($s, shift @list); } return $s; }
my $sum = fold { $_[0] + $_[1] } (1, 2, 3, 4, 5);
のようにして使う。
my $mean = 1 / fold { $_[0] + $_[1] } map 1/$_, (1,2,3,4,5);