Higher-order programming: Difference between revisions

Content deleted Content added
m Minor WP:EoS WP:COPYEDIT. WP:LINKs: add, update: needless WP:PIPE cut.
m WP:LINK: updated, nonproper noun MOS:CAPS low-cased; after renaming target article.
Line 1:
'''Higher-order programming''' is a style of [[computer programming]] that uses functions as values. It is usually instantiated with, or borrowed from, models of computation such as [[lambda calculus]] which make heavy use of [[higher-order function]]s.
 
For example, in higher-order programming, one can pass [[function (programming)|functions]] as arguments to other functions and functions can be the return value of other functions (such as in [[macro (computer science)|macros]] or for [[interpreter (computing)|interpreting]]). This style of programming is mostly used in [[functional programming]], but it can also be very useful in ''regular'' [[object-oriented programming]]. A slightly different interpretation of higher-order programming in the context of object-oriented programming are [[Higherhigher Orderorder Messagesmessage]]s, which let messages have other messages as arguments, rather than functions.
 
Prominent examples of languages supporting this are [[C Sharp (programming language)|C#]], [[ECMAScript]] ([[ActionScript]], [[JavaScript]], [[JScript]]), [[F Sharp (programming language)|F#]], [[Haskell (programming language)|Haskell]], [[Lisp (programming language)|Lisp]] ([[Common Lisp]], [[Scheme (programming language)|Scheme]], [[Clojure]], others), [[Lua (programming language)|Lua]], [[Oz (programming language)|Oz]], [[Perl]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[Smalltalk]].