In mathematics and computer science, a higher-order function (also functional form, functional or functor) is a function that does at least one of the following: takes one or more functions as an input.
An important part of all functional programming languages is the ability to take a function you defined and then pass it as a parameter to another function. This in turn binds that function parameter to a variable which can be used like any other variable within the function.
A function that can accept other functions transported around that way is named a higher order function. Higher order functions are a powerful means of abstraction and one of the best tools to master in Erlang.