Higher-order functions: Difference between revisions
Content added Content deleted
(→[[C]]) |
|||
Line 69: | Line 69: | ||
[[Category:Perl]] |
[[Category:Perl]] |
||
'''Interpreter:''' [[Perl]] |
'''Interpreter:''' [[Perl]] |
||
Passing a pointer to a function |
|||
my $retval = first('data', \&second); |
|||
sub first ($ $){ |
|||
my $val = shift; |
|||
my $func = shift; |
|||
return $func->($val); |
|||
} |
|||
sub second ($){ |
|||
return(reverse(shift)); |
|||
} |
|||
Passing a string to be used as a function |
|||
my $retval = first('data', 'second'); |
|||
sub first ($ $){ |
|||
my $val = shift; |
|||
my $func = shift; |
|||
return &{$func}($val); |
|||
} |
|||
sub second ($){ |
|||
return(reverse(shift)); |
|||
} |
|||
==[[C plus plus|C++]]== |
==[[C plus plus|C++]]== |