// A higher‑order function is a function that does at least one of the following:
// 1. Takes another function as an argument
// 2. Returns a function as its result
// If it does either one, it qualifies.
// Higher-order function: takes a function as an argument
def applyTwice(fn: Int => Int, x: Int): Int =
fn(fn(x))
// A simple function to pass in
def add3(n: Int): Int =
n + 3
@main def runExample1(): Unit =
// Use the higher-order function
val result = applyTwice(add3, 5) // 5 + 3 = 8 + 3 = 11
println(result)
/*
run:
11
*/