paper

Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire

  • Authors:

📜 Abstract

Much work has been done in the area of program transformation, but relatively little that takes a calculational approach using a single uniform formalism. In this paper, we design a particular class of recursion operators, called morphisms and comorphisms, for datatypes, and show that these suffice to express many recursive functions in a concise way using just a few basic notions from category theory.

✨ Summary

This paper is a seminal work in the field of functional programming, introducing a calculational approach to program transformation using morphisms and comorphisms for datatypes. By employing concepts from category theory, the authors propose using a standard set of recursion operators to express recursive functions concisely. This work has been influential in the development of advanced algorithms in functional programming languages like Haskell and has contributed to an improved understanding of recursion schemes.

Upon web search, several scholarly works cite this paper, demonstrating its impact on subsequent academic research. For instance, it has influenced research on generic programming and the development of libraries that leverage recursion schemes to facilitate program transformation. Google’s “Scholar” shows multiple citations: Google Scholar.

Overall, this paper has laid a foundational framework for researchers exploring advanced concepts in functional programming and has influenced the development of techniques and libraries in the Haskell programming community.