Conception, evolution, and application of functional programming languages
- 1 September 1989
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 21 (3) , 359-411
- https://doi.org/10.1145/72551.72554
Abstract
The foundations of functional programming languages are examined from both historical and technical perspectives. Their evolution is traced through several critical periods: early work on lambda calculus and combinatory calculus, Lisp, Iswim, FP, ML, and modern functional languages such as Miranda 1 and Haskell. The fundamental premises on which the functional programming methodology stands are critically analyzed with respect to philosophical, theoretical, and pragmatic concerns. Particular attention is paid to the main features that characterize modern functional languages: higher-order functions, lazy evaluation, equations and pattern matching, strong static typing and type inference, and data abstraction. In addition, current research areas—such as parallelism, nondeterminism, input/output, and state-oriented computations—are examined with the goal of predicting the future development and application of functional languages.Keywords
This publication has 47 references indexed in Scilit:
- A theory of type polymorphism in programmingPublished by Elsevier ,2003
- Code optimizations for lazy evaluationHigher-Order and Symbolic Computation, 1988
- Detecting global variables in denotational specificationsACM Transactions on Programming Languages and Systems, 1985
- The Expressiveness of Simple and Second-Order Type StructuresJournal of the ACM, 1983
- Data-Driven and Demand-Driven Computer ArchitectureACM Computing Surveys, 1982
- 8th annual symposium on computer architectureACM SIGARCH Computer Architecture News, 1981
- The next 700 programming languagesCommunications of the ACM, 1966
- A correspondence between ALGOL 60 and Church's Lambda-notationsCommunications of the ACM, 1965
- A Fortran-Compiled List-Processing LanguageJournal of the ACM, 1960
- The Inconsistency of Certain Formal LogicsAnnals of Mathematics, 1935