sub Map {
my $sub = shift();
my @new_arr; # want
foreach my $item (@_) {
push @new_arr, $sub->($item);
}
@new_arr;
}
sub foo {$_[0] + 1}
@increased = Map \&foo, (1,2,3);
print "@increased\n";
####
sub Map {
my $sub = shift();
if (@_) { # we are calling it normaly
my @new_arr; # want
foreach my $item (@_) {
push @new_arr, $sub->($item);
}
return @new_arr;
} else { # only the function is passed
return sub {
my @new_arr; # want
foreach my $item (@_) {
push @new_arr, $sub->($item);
}
return @new_arr;
}
}
}
sub foo {$_[0] + 1};
$inc = Map \&foo;
@increased = $inc->(1,2,3);
print "@increased\n";
##
##
sub Map {
my $sub = shift();
return sub {
my @new_arr; # want
foreach my $item (@_) {
push @new_arr, $sub->($item);
}
return @new_arr;
}
}
##
##
@incremented = Map(\&foo)->(1,2,3)
##
##
$Inc = Map(\&foo);
@incremented = $Inc->(1,2,3)