This event has ended. Create your own event → Check it out
This event has ended. Create your own
View analytic
Monday, November 21 • 11:25am - 12:15pm
[SLIDES]Pawel Szulc @rabbitonweb - Going bananas with recursion schemes for fixed point data types

Sign up or log in to save this to your schedule and see who's attending!

Feedback form is now closed.
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.

avatar for Pawel Szulc

Pawel Szulc

Pawel Szulc is primarily a programmer. Always was and always will be. Experienced professionally in JVM ecosystem, currently having tons of fun with Scala, Clojure and Haskell. By day working on (not that) BigData problems with Akka Stream & Apache Spark, by night hacking whatever he finds interesting at that given moment. Humble apprentice of Functional Programming. Runs a blog http://www.rabbitonweb.com

Monday November 21, 2016 11:25am - 12:15pm
3. Citius

Attendees (6)