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 * xdef cubed(x: Int): Int = x * x * xdef 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 ...

Start Free Trial

No credit card required