Conception, evolution, and application of functional programming languages

  • Authors:
  • Paul Hudak

  • Affiliations:
  • Yale Univ., New Haven, CT

  • Venue:
  • ACM Computing Surveys (CSUR)
  • Year:
  • 1989

Quantified Score

Hi-index 0.03

Visualization

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 Miranda1 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.