Jump to content

Applicative programming language

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Quuxbazbarfoo (talk | contribs) at 17:55, 28 April 2020 (Add line about semantics, from Backus' "Can Programming Be Liberated from the von Neumann Style?"). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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]

The semantics of applicative languages are based on beta reduction of terms, and side effects such as mutation of state are not permitted.[3]

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

References

  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.
  3. ^ Backus, J. (1978). "Can programming be liberated from the von Neumann style?: A functional style and its algebra of programs". Communications of the ACM. 21 (8): 613. doi:10.1145/359576.359579.