Recursion Patterns and Their Impact on Programming Language Design

Paul Bailes


Catamorphism, foldr, functional programming, recursion pattern


Applicative/functional programming is considerably simplified through the use of specific recursion patterns as opposed to general recursion. The viability of catamorphic recursion patterns as a pragmatic and theoretical basis makes it feasible to consider a programming language based on them. Syntactic considerations focus on notation to clarify the structures involved in the use of catamorphisms in this critical role. More fundamental semantic considerations involve the recognition that a catamorphic programming style essentially involves the treatment of data exclusively as functions and the extension of this approach to the derivation of other types of data whose behaviours are not generally catamorphic. Implementation by preprocessing into Haskell can be structured to avoid the limitations of Haskell’s types, but a general regime of dynamic types seems unavoidable as an alternative. Clear connections with other work on subrecursive programming illuminates other paths for further development.

Important Links:

Go Back