Back

This article includes a list of general references, but it lacks sufficient corresponding inline citations. (September 2013) |

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 or value 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 .