Scala higher-order functions
A higher-order function either takes other functions as arguments or returns a function as its result.
We can use this example script:
def squared(x: Int): Int = x * x def cubed(x: Int): Int = x * x * x def process(a: Int, processor: Int => Int): Int = {processor(a) } val fiveSquared = process(5, squared) val sevenCubed = process(7, cubed)
We define two functions; one squares the number passed and the other cubes the number passed.
Next, we define the higher-order function that takes the number to work on and the processor to apply.
Lastly, we call each one. For example, we call process()
with 5
and the squared()
function. The process()
function passes the 5
to the squared()
function and returns the result:
We take advantage of the Scala's engine automatically printing out variable values to see the result expected.