Content deleted Content added
→External links: Removed minor, personal project that hasn’t been updated in 8 years. Tags: Mobile edit Mobile web edit Advanced mobile edit |
CortexFiend (talk | contribs) Link suggestions feature: 2 links added. |
||
(36 intermediate revisions by 19 users not shown) | |||
Line 1:
{{Short description|Programming language}}
{{Infobox programming language
|name = FP
Line 11 ⟶ 12:
|implementations =
|dialects = FP84
|influenced_by = [[APL (programming language)|APL]]<ref name="Hudak 1989">[
|influenced = [[FL (programming language)|FL]], [[Haskell (programming language)|Haskell]], [[Joy (programming language)|Joy]]
}}
'''FP''' (short for ''functional programming'')<ref name="Backus 1977"/> is a [[programming language]] created by [[John Backus]] to support the [[function-level programming]]<ref name="Backus 1977"/> paradigm.
The FP language was introduced in Backus's 1977 [[Turing Award]] paper, "Can Programming Be Liberated from the von Neumann Style?", subtitled "a functional style and its algebra of programs." The paper sparked interest in [[functional programming]] research,<ref>{{cite web|last1=Yang|first1=Jean|title=Interview with Simon Peyton-Jones|url=https://www.cs.cmu.edu/~popl-interviews/peytonjones.html|website=People of Programming Languages|date=2017}}</ref> eventually leading to modern functional languages, which are largely founded on the [[lambda calculus]] paradigm, and not the function-level paradigm Backus had hoped. In his Turing award paper, Backus described how the FP style is different:
{{
FP itself never found much use outside of academia.<ref name="p21">{{cite web|last1=Hague|first1=James|title=Functional Programming Archaeology|url=http://prog21.dadgum.com/14.html|website=Programming in the Twenty-First Century|date=December 28, 2007}}</ref> In the 1980s Backus created a successor language, [[FL (programming language)|FL]]
== Overview ==
Line 57 ⟶ 58:
In contrast to primitive functions, functionals operate on other functions. For example, some functions have a ''unit'' value, such as 0 for ''addition'' and 1 for ''multiplication''. The functional '''unit''' produces such a '''value''' when applied to a '''function f''' that has one:
'''unit +''' = 0
'''unit
'''unit foo''' = ⊥
Line 90 ⟶ 91:
FP84's semantics are embodied in an underlying algebra of programs, a set of [[function-level programming|function-level]] equalities that may be used to manipulate and reason about programs.
==References==
{{Reflist|refs=
<ref name="Backus 1977">{{Cite journal | doi = 10.1145/359576.359579| title = Can programming be liberated from the von Neumann style?: A functional style and its algebra of programs| journal = Communications of the ACM| volume = 21| issue = 8| pages = 613| year = 1978| last1 = Backus | first1 = J. | doi-access = free}}</ref>
<ref name=acm>{{cite web |title=Association for Computing Machinery A. M. Turing Award |url=http://signallake.com/innovation/JBackus032007.pdf }}{{Dead link|date=March 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
}}
*''Sacrificing simplicity for convenience: Where do you draw the line?'', John H. Williams and Edward L. Wimmers, IBM Almaden Research Center, Proceedings of the
▲*''Sacrificing simplicity for convenience: Where do you draw the line?'', John H. Williams and Edward L. Wimmers, IBM Almaden Research Center, Proceedings of the FIfteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, San Diego, CA, January 1988.
==External links==
* [https://pointfree-interpreter.github.io/ FP-Interpreter] written in Delphi/Lazarus
* [http://dirkgerrits.com/publications/john-backus.pdf#section.9 Dirk Gerrits: Turing Award lecture (1977-1978) ff], in John W. Backus (Publications)
* FP84 vs FL: [https://dl.acm.org/doi/pdf/10.1145/73560.73575 Sacrificing simplicity for convenience: Where do you draw the line?] J.H. William and E.L. Wimmers, 1988 (Pages 169–179)
[[Category:Academic programming languages]]
|