The Expression Lemma

  • Authors:
  • Ralf Lämmel;Ondrej Rypacek

  • Affiliations:
  • The University of Koblenz-Landau, Germany;The University of Nottingham, UK

  • Venue:
  • MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Algebraic data types and catamorphisms (folds) play a central role in functional programming as they allow programmers to define recursive data structures and operations on them uniformly by structural recursion. Likewise, in object-oriented (OO) programming, recursive hierarchies of object types with virtual methods play a central role for the same reason. There is a semantical correspondence between these two situations which we reveal and formalize categorically. To this end, we assume a coalgebraic model of OO programming with functional objects. The development may be helpful in deriving refactorings that turn sufficiently disciplined functional programs into OO programs of a designated shape and vice versa.