19 lines
470 B
Perl
19 lines
470 B
Perl
sub fs :prototype(&) {
|
|
my $func = shift;
|
|
sub { map $func->($_), @_ }
|
|
}
|
|
|
|
sub double :prototype($) { shift() * 2 }
|
|
sub square :prototype($) { shift() ** 2 }
|
|
|
|
my $fs_double = fs(\&double);
|
|
my $fs_square = fs(\&square);
|
|
|
|
my @s = 0 .. 3;
|
|
print "fs_double(@s): @{[ $fs_double->(@s) ]}\n";
|
|
print "fs_square(@s): @{[ $fs_square->(@s) ]}\n";
|
|
|
|
@s = (2, 4, 6, 8);
|
|
print "fs_double(@s): @{[ $fs_double->(@s) ]}\n";
|
|
print "fs_square(@s): @{[ $fs_square->(@s) ]}\n";
|