MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire (1991) [250 citations — 8 self]

by Erik Meijer ,  Maarten Fokkinga ,  Ross Paterson
Add To MetaCart

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. 1 Introduction Among the many styles and methodologies for the construction of computer programs the Squiggol style in our opinion deserves attention from the functional programming community. The overall goal of Squiggol is to calculate programs from their specification in the way a mathematician calculates solutions to differential equations, or uses arithmetic to solve numerical problems. It is not hard to state, prove and use laws for well-known operations such as addition, multiplication and ---at the function level--- composition. It is, however, quite hard to state, prove and use laws for arbitrarily recursively ...

Citations

1122 Introduction to Functional Programming – Bird, Wadler - 1988
388 Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory – Stoy - 1977
385 Comprehending monads – WADLER - 1992
278 Types, abstraction and parametric polymorphism – Reynolds - 1983
234 Domains for Denotational Semantics – Scott - 1982
224 Theorems for free – Wadler - 1989
195 An introduction to the theory of lists – Bird - 1987
134 The category-theoretic solution of recursive domain equations – Smyth, Plotkin - 1982
104 Views: A way for pattern matching to cohabit with data abstraction – WADLER - 1987
89 Algorithmics -- towards programming as a mathematical activity – Meertens - 1987
28 Algebraic specification of data types: A synthetic approach – Lehmann, Smyth - 1981
28 Denotational Semantics – Schmidt - 1986
12 Tupling and mutumorphisms – Fokkinga - 1989
6 Programming Calculi Based on Fixed Point Transformations – Meyer - 1985
5 Naturalness of polymorphism – Bruin - 1989
4 Translating attribute grammars into catamorphisms. The Squiggolist – Fokkinga, Jeuring, et al. - 1991
4 Codatatypes in ML – Hagino - 1989
4 Programmierung mit Funktionsobjekten: Konstruktive Erzeugung semantischer Bereiche und Anwendung auf die partielle Auswertung. Technische Universitat Munchen, Doctoral Dissertation, also available as: TUM-I8803 – Zierer - 1988
2 A relational theory of types – Backhouse, Woude, et al. - 1991
2 An introduction to the category-theoretic solution of recursive domain equations – Bos, Hemerik - 1988
2 Retractions in comparing Prolog semantics – Bruin, Vink - 1989
2 Algebraic Types and Program Transformation – Malcolm - 1990
2 Reasoning about Functional Programs – Paterson - 1988
2 and Promotability – Homomorphisms - 1989
2 Fixed point constructions in order enriched categories – Wand - 1979
1 On the use of composition in transformational programming – Berghammer - 1985
1 Transformation parallel ablaufender Programme – Broy - 1980
1 Some techniques for recursion removal – Arsac, Kodratoff - 1982