Higher-order programming: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: title. Add: chapter-url, pages, volume, chapter. Removed or converted URL. Removed access-date with no URL. | Use this bot. Report bugs. | Suggested by AManWithNoPlan | #UCB_CommandLine
Added Ada language to the list
 
(2 intermediate revisions by 2 users not shown)
Line 1:
{{Short description|Programming paradigm}}
{{one source|date=June 2019}}
{{more citations needed|date=June 2019}}
Line 5 ⟶ 6:
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 [[object-oriented programming]]. A slightly different interpretation of higher-order programming in the context of object-oriented programming are [[higher order message]]s, which let messages have other messages as arguments, rather than functions.
 
Prominent examplesExamples of languages supporting this are [[Ada (programming_language)|Ada]], [[Wolfram Language]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[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]], [[PHP]], [[Prolog]],<ref name=Naish1996>{{Cite report | title = Higher-order logic programming in Prolog | year = 1996 | author = Naish, Lee | publisher = Department of Computer Science, University of Melbourne |citeseerx = 10.1.1.35.4505}}</ref> [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[Smalltalk]], [[Scala (programming language)|Scala]], [[ML (programming language)|ML]], and [[Erlang (programming language)|Erlang]].
 
==See also==