Lazy functional programming
Lazy functional programming refers to a style of programming that usually combines the following features:
- purely functional (no side-effects - well, except recursion!)
- lazy evaluation of expressions
- higher-order functions
- (optionally but often) polymorphic types
Lazy functional programming has its roots in Church's
Nowadays, this style of programming is typified by the programming language Haskell.
List of purely functional languages
Historical purely functional languages
References
- David Turner has written an extensive article on the history of lazy functional programming:
@inproceedings{turner_2013,
location = {Berlin, Heidelberg},
title = {Some History of Functional Programming Languages},
volume = {7829},
doi = {10.1007/978-3-642-40447-4_1},
series = {Lecture Notes in Computer Science},
pages = {1--20},
booktitle = {Trends in Functional Programming},
publisher = {Springer Berlin Heidelberg},
author = {Turner, D. A.},
editor = {Loidl, Hans-Wolfgang and Peña, Ricardo},
date = {2013}
}