This talk has been (or will be) presented at:
An intense training introducing patterns for processing recursive data. We meet such data as JSON/XML objects or various kinds of trees. Recursion schemes focus on a functional approach, allowing us to do recursion in a very elegant and compositional way. This workshop will be based on the Scalaz and Matryoshka libraries. We will start with the basics (fixed-point datatypes), then we will cover basic processing with catamorphisms. Our next step will be some exploration of other kinds of useful morphisms, like paramorphisms, zygomorphisms, and a bunch of other transformations. Finally, we'll try to combine various morphisms together to understand the advantage of their composability. Requirements: intermediate experience with functional programming in Scala (higher-order functions, algebraic data types, higher-kinded types, functors, applicatives). Nice to have: knowledge of free monads.