Recursive data structures are everywhere and need to be processed. Operations on these structures are recursive and can not be reused on other data structures.
Recursion schemes show a path to generalizing the way of working with these data structures. They also enable us to separate our business logic from recursion.
Slides
Sources
- Coplien, J. (1998). To Iterate is Human, to Recurse, Divine. C++ Report 10(7), July/August 1998, pp. 43 - 51.
- Meijer, E., Fokkinga, M., & Paterson, R. (1991). Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire.
- Hutton, G. (1999). A Tutorial on the Universality and Expressiveness of Fold.
- Ali, Z. (2017). Intro to Property-Based Testing.
- Thomson, T. (2014 - 2018). Recursion Schemes Part I, Part II, Part III, Part IV, Part 4½, Parrt V.
- Droste
- Awesome Recursion Schemes
To the extent possible under law,
Daniel Heinrich
has waived all copyright and related or neighboring rights to
Conquering recursion one step at a time.
This work is published from:
Germany.