Apply a callback to an array: Difference between revisions
Content added Content deleted
(add Clojure) |
(→{{header|Perl}}: Added spaces to blank lines to make code sample a contiguous block) |
||
Line 570: | Line 570: | ||
# create array |
# create array |
||
my @a = (1, 2, 3, 4, 5); |
my @a = (1, 2, 3, 4, 5); |
||
# create callback function |
# create callback function |
||
sub mycallback { |
sub mycallback { |
||
return 2 * shift; |
return 2 * shift; |
||
} |
} |
||
# use array indexing |
# use array indexing |
||
my $i; |
my $i; |
||
Line 581: | Line 581: | ||
print "mycallback($a[$i]) = ", mycallback($a[$i]), "\n"; |
print "mycallback($a[$i]) = ", mycallback($a[$i]), "\n"; |
||
} |
} |
||
# using foreach |
# using foreach |
||
foreach my $x (@a) { |
foreach my $x (@a) { |
||
print "mycallback($x) = ", mycallback($x), "\n"; |
print "mycallback($x) = ", mycallback($x), "\n"; |
||
} |
} |
||
# using map (useful for transforming an array) |
# using map (useful for transforming an array) |
||
my @b = map mycallback($_), @a; # @b is now (2, 4, 6, 8, 10) |
my @b = map mycallback($_), @a; # @b is now (2, 4, 6, 8, 10) |
||
# and the same using an anonymous function |
# and the same using an anonymous function |
||
my @c = map { $_ * 2 } @a; # @c is now (2, 4, 6, 8, 10) |
my @c = map { $_ * 2 } @a; # @c is now (2, 4, 6, 8, 10) |
||
# use a callback stored in a variable |
# use a callback stored in a variable |
||
my $func = \&mycallback; |
my $func = \&mycallback; |