About this Talk
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.
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).
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.
BACK TO SCHEDULE