Higher-order functions and lambdas
The [+]
reduction operator that we have just seen in the previous section is performing the action of the +
operator as many times as needed to add up all the elements of the provided data.
In Perl 6, there is an alternative way of doing reduction operations. There exists a built-in function reduce
that expects a code block that will execute the action. First, we will use the function add($a, $b)
that we created in Chapter 2, Writing Code:
sub add($a, $b) { return $a + $b; } say reduce &add, 10..15;
The reduce
function takes the reference to a function as the first argument and a flattened list of values. In &add
, the ampersand before the name of the function tells Perl 6 that this is not a function call but a code reference to a function.
The reduce
function is an example of the higher-order function. One of its arguments is another function. In Perl 6, functions are the first-class objects, which means that they can be passed as arguments to...