Jump to content

Applicative programming language: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Rewrite first paragraph, clarifying the definition and relation to functional/concatenative programming, and adding citations.
Line 1: Line 1:
{{unreferenced|date=December 2011}}
{{unreferenced|date=December 2011}}
In the [[programming paradigm|classification of programming languages]], an '''applicative programming language''' is built out of [[Function (computer science)|functions]] applied to [[Argument (computer science)|arguments]]. Applicative languages are [[Functional programming|functional]], and applicative is often used as a synonym for functional.<ref>{{cite conference|title=Logic Programming cum Applicative Programming|first1=Nachum|last1=Dershowitz|first2=David A.|last2=Plaisted|year=1985|book-title=Symposium on Logic Programming|place=Boston, MA|pages=54-66|url=https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.404.3826&rep=rep1&type=pdf}}</ref> However, [[concatenative languages]] can be functional, while not being applicative.<ref>{{cite web|url=https://evincarofautumn.blogspot.com/2012/02/why-concatenative-programming-matters.html|title=Why Concatenative Programming Matters|author=Jon Purdy|date=12 February 2012|access-date=28 April 2020}}</ref>
In the [[programming paradigm|classification of programming languages]], an '''applicative programming language''' is designed to support the development of programs as giving the result of a function of the combined variables. Successive functional transformations are applied to data to arrive at the result. Such a [[programming language|language]], with program control and total state kept in the background, may also be known as a [[functional language]], in a rather loose sense of the term.
[[Lisp programming language|Lisp]] and [[ML programming language|ML]] are applicative programming languages. In [[Haskell (programming language)|Haskell]], this programming paradigm is developed into the applicative [[functor]], which extends the [[higher-order function]]al abstraction beyond [[Monad (functional programming)|monad]].
[[Lisp programming language|Lisp]] and [[ML programming language|ML]] are applicative programming languages. In [[Haskell (programming language)|Haskell]], this programming paradigm is developed into the applicative [[functor]], which extends the [[higher-order function]]al abstraction beyond [[Monad (functional programming)|monad]].

Revision as of 17:23, 28 April 2020

In the classification of programming languages, an applicative programming language is built out of functions applied to arguments. Applicative languages are functional, and applicative is often used as a synonym for functional.[1] However, concatenative languages can be functional, while not being applicative.[2]

Lisp and ML are applicative programming languages. In Haskell, this programming paradigm is developed into the applicative functor, which extends the higher-order functional abstraction beyond monad.

See also

  1. ^ Dershowitz, Nachum; Plaisted, David A. (1985). "Logic Programming cum Applicative Programming". Symposium on Logic Programming. Boston, MA. pp. 54–66.
  2. ^ Jon Purdy (12 February 2012). "Why Concatenative Programming Matters". Retrieved 28 April 2020.