# Higher-order function

## Function that takes one or more functions as an input or that outputs a function / From Wikipedia, the free encyclopedia

#### Dear Wikiwand AI, let's keep it short by simply answering these key questions:

Can you list the top facts and stats about Higher-order function?

Summarize this article for a 10 years old

In mathematics and computer science, a **higher-order function** (**HOF**) is a function that does at least one of the following:

- takes one or more functions as arguments (i.e. a procedural parameter, which is a parameter of a procedure that is itself a procedure),
- returns a function as its result.

All other functions are *first-order functions*. In mathematics higher-order functions are also termed *operators* or *functionals*. The differential operator in calculus is a common example, since it maps a function to its derivative, also a function. Higher-order functions should not be confused with other uses of the word "functor" throughout mathematics, see Functor (disambiguation).

In the untyped lambda calculus, all functions are higher-order; in a typed lambda calculus, from which most functional programming languages are derived, higher-order functions that take one function as argument are values with types of the form $(\tau _{1}\to \tau _{2})\to \tau _{3}$.