Getting Work Done with Extensible Effects
This hands-on, code-centric session teaches attendees how to use the Eff monad library to build a directory scanner in Scala.
The Eff library is an implementation of Extensible Effects in Scala, developed by Eric Torreborre. It is inspired by Oleg Kiselyov’s Haskell paper ‘Freer Monads, More Extensible Effects’ . Like Monad Transformer stacks and the Free monad, it provides an organising principle for the construction of pure functional programs.
This workshop focuses on teaching attendees how to use Eff to solve an applied software engineering problem, namely a directory scanner. It introduces several common Eff ‘effects’ through 5 incremental exercises:
- The Async effect to model asynchronous requests
- Using Either effects for error handling
- Using Reader effects for dependency injection
- Writer effects for logging
Materials are available at benhutchison Getting Work Done With Extensible Effect. Solutions are included for all exercises.