Higher-order programming
Higher-order programming is a style of computer programming that exploits the theoretical ability to use functions as values. It is usually instantiated with, or borrowed from, models of computation like the lambda calculus which make heavy use of higher-order functions.
For example, in higher-order programming, one can pass functions as arguments to other functions and functions can be the return value of other functions (such as in macros or for interpreting). This style of programming is mostly used in functional programming, but it can also be very useful in 'regular' object-oriented programming.
Prominent examples of languages supporting this are C (via function pointers), C# (via lambda expressions), ECMAScript (ActionScript, JavaScript), F#, Haskell, Lisp (Common Lisp, Scheme, others), Lua, Oz, Perl, PHP, Python, Ruby, Smalltalk.
External links
- "Higher Order Programming" by Sjoerd Visscher (Uses JavaScript as example language)