Actions and Detail Panel
FreeMonad FreeApplicative FreeWorkshop @ Compose :: Conference Melbourne
Tue. 30 August 2016, 9:00 am – 12:00 pm AEST
Workshop based around combining the FreeMonad with the FreeApplicative.
Monads are great for composition. Free Monads allow us to easily define programs that separate the intention of the program from the side effects. However, they are based around a model of composing together a program where the output of one effect is the input to the next.
But what if those effects are completely independent. What if those independent effects could be interpreted in a more optimal way (for example, batched or executed in parallel).
Applicatives are great for representing independent computations. Like Free Monads, Free Applicatives allow us to define a custom DSL for our program, with the ability to express independent computations.
This workshop will take an example program using the Free Monad and consider how it can be restructured to take advantage of the Free Applicative.
An understanding / previous working with the Free Monad will help.
The exercises will use Scala (specifically the cats implementation of Free and FreeApplicative).
Install Intellij or your favourite IDE + SBT.
- Clone https://github.com/lukestephenson/monad-coproduct-workshop.git
- Run "sbt compile" from the cloned project directory
Date and Time
RMIT University - Swanston Academic Building
445 Swanston Street
Level 3, Room 15 (80.03.06)
Melbourne, VIC 3000