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;