Functional interpreters and you

May 17, 2018



Phrases like "free monads" and "finally tagless" get thrown around in the Scala community like they're going out of fashion. But what do they mean and why are they so popular? In this talk we will discuss "interpreters", an essential functional programming pattern that underpins these terms. We will show how any problem in functional programming can be described using the interpreter pattern, and how modelling things this way naturally gives rise to abstractions like the free monad and encodings like finally tagless. Required knowledge Attendees should have a good knowledge of Scala, including patterns such as algebraic data types (sealed traits and case classes) and type classes (implicit parameters and values). Learning objectives This talk will provide an understanding of the interpreter pattern and its ubiquitousness in functional programming. We will cover several types of interpreter, including the monadic interpreters that motivate the free monad. Finally, we will show how interpreters can be composed and how this motivates encodings such as coproducts and finally tagless. Dave is a developer, trainer, and partner at Underscore. He has spent over a decade programming, speaking at conferences, and writing books on functional programming. In his spare time he enjoys making maps, playing with cats, and taking short trips in his space ship.



About Scala Days

Scala Days brings together developers from all corners of the world to share their experiences and new ideas around creating applications with Scala and related technologies, like Spark, Kafka, and Akka. Scala Days provides a unique opportunity for Scala users to interact with the contributors to the language and related technologies and connect with fellow developers.

Store presentation

Should this presentation be stored for 1000 years?

How do we store presentations

Total of 0 viewers voted for saving the presentation to eternal vault which is 0.0%


Recommended Videos

Presentations on similar topic, category or speaker

Interested in talks like this? Follow Scala Days