## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# 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 ...

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required