Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
edited by: J. Hughes
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...