Banana Color Colour 2964115

Going bananas with recursion schemes for fixed point data types by Paweł Szulc

Banana Color Colour 2964115

Let's solve some real-world problems!

At Lambda Days, Scala Developer, Paweł Szulc introduced us to the concept of catamorphism and how fix point data types help us solve these problems. 


Going bananas with recursion schemes for fixed point data types

In 1991 Erik Meijer, Maarten Fokkinga, and Ross Paterson published ""Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire."" This paper is a classic one, widely recognizable in the FP community. Constructs described - known as recursion schemas - have real world applications. Strictly speaking, explicit recursion is the ‘goto’ of pure functional programming. Recursion schemas provide same level of sanity as loops did for structural programming back in the day.

Over the years a lot of the progress have been made. Papers like ""Recursion schemes from comonads"" by Tarmo Uustalu, Varmo Vene & Alberto Pardo or ""Unifying Structured Recursion Schemes"" by Ralf Hinze, Nicolas Wu & Jeremy Gibbons - pushed the concept forward.

This talk is about generalization of a very specific recursion schema (called catamorphism) over fixed point data type. After providing introduction the concept of catamorphism, we will jump straight to fix point data types trying to solve some real-world problems. Code examples are in Scala. Code examples use Matryoshka - which is an open sourced project design to generalize folds, unfolds, and traversals for fixed point data structures in Scala.
This talk was given by Paweł Szulc at Lambda Days.