Functional programming with bananas, lenses, envelopes and barbed wire
E. Meijer, M. Fokkinga, and R. Paterson. Functional Programming Languages and Computer Architecture, volume 523 of Lecture Notes in Computer Science, Springer Berlin Heidelberg, (1991)
DOI: 10.1007/3540543961\_7
Abstract
We develop a calculus for lazy functional programming based on recursion operators associated with data type definitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all example functions in Bird and Wadler's Introduction to Functional Programming can be expressed using these operators.
%0 Book Section
%1 citeulike:4234193
%A Meijer, Erik
%A Fokkinga, Maarten
%A Paterson, Ross
%B Functional Programming Languages and Computer Architecture
%D 1991
%E Hughes, John
%I Springer Berlin Heidelberg
%J Functional Programming Languages and Computer Architecture
%K functional-programming program-transformation
%P 124--144
%R 10.1007/3540543961\_7
%T Functional programming with bananas, lenses, envelopes and barbed wire
%U http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf
%V 523
%X We develop a calculus for lazy functional programming based on recursion operators associated with data type definitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all example functions in Bird and Wadler's Introduction to Functional Programming can be expressed using these operators.
@incollection{citeulike:4234193,
abstract = {{We develop a calculus for lazy functional programming based on recursion operators associated with data type definitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all example functions in Bird and Wadler's Introduction to Functional Programming can be expressed using these operators.}},
added-at = {2019-06-18T20:47:03.000+0200},
author = {Meijer, Erik and Fokkinga, Maarten and Paterson, Ross},
biburl = {https://www.bibsonomy.org/bibtex/231553477daf799f06f78cbfff77b4380/alexv},
booktitle = {Functional Programming Languages and Computer Architecture},
citeulike-article-id = {4234193},
citeulike-linkout-0 = {http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf},
citeulike-linkout-1 = {http://dx.doi.org/10.1007/3540543961\_7},
citeulike-linkout-2 = {http://www.springerlink.com/content/77t3588175m4h5n7},
citeulike-linkout-3 = {http://link.springer.com/chapter/10.1007/3540543961\_7},
doi = {10.1007/3540543961\_7},
editor = {Hughes, John},
interhash = {20a3535be02b230e95a37bfe43464536},
intrahash = {31553477daf799f06f78cbfff77b4380},
journal = {Functional Programming Languages and Computer Architecture},
keywords = {functional-programming program-transformation},
pages = {124--144},
posted-at = {2015-11-24 02:55:38},
priority = {3},
publisher = {Springer Berlin Heidelberg},
series = {Lecture Notes in Computer Science},
timestamp = {2019-08-24T00:14:24.000+0200},
title = {{Functional programming with bananas, lenses, envelopes and barbed wire}},
url = {http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf},
volume = 523,
year = 1991
}