The conception, evolution, and application of functional programming languages


Paul Hudak


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, non-determinism, input/output, and state-oriented computations—are examined with the goal of predicting the future development and application of functional languages.


    ,author={Hudak, P.}
    ,title={Conception, Evolution, and Application of Functional
            Programming Languages}
    ,journal={ACM Computing Surveys}