// 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
function applyTwice(callable $fn, int $x): int {
return $fn($fn($x));
}
// A simple function to pass in
function add3(int $n): int {
return $n + 3;
}
// Use the higher-order function
$result = applyTwice('add3', 5); // 5 + 3 = 8 + 3 = 11
echo $result . PHP_EOL;
/*
run:
11
*/