Higher-order functions: Difference between revisions

Content added Content deleted
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++]]==