There’s just time to squeeze in April’s newsletter before the month is over. In this edition we discuss the free monad and let you know about some free events running at Scala Days Amsterdam.
Our mini-series on error handling last newsletter had a great reception. We decided to repeat the idea, this time focusing on a more advanced topic: the free monad.
The free monad is one of those functional programming tools that from the outside seems both incredibly powerful (see Facebook’s Haxl and Twitter’s Stich for compelling applications) and incredibly unapproachable (if “left adjoint to a forgetful functor” means anything to you, I suggest you don’t need a tutorial on the free monad).
What we’ve tried to do is break down the free monad to its essential elements, and show that when you remove the jargon there are just a few simple concepts involved.
We have three posts on the blog for you that cover the free monad.
The first post in the series explains the basic idea behind the free monad: separating the representation of a computation from its interpreter.
The followup post goes deeper into the structure of the free monad, showing how it can be derived from the monad operations. As a bonus we also derive the free monoid.
The final post explores the role of laziness in monadic IO operations, and ties this back to the free monad.
Free Courses and Talks at Scala Days Amsterdam
Scala Days Amsterdam is the next big event in the Scala calendar, and we will be there running some free events. In particular:
- before Scala Days we’re running an introduction to Scala via computer graphics, using our open source book Creative Scala; and
- immediately following Scala Days Miles is running a Shapeless workshop.
In the interests of fairness tickets for both events are allocated by lottery. The first drawings of the lottery will take place very soon, so sign up now if you’d like to attend!
We also have a few talks at Scala Days Amsterdam:
- Richard is talking about CRDTs, web apps, and Scala.js, which is going to be one hell of a talk and one I’m already excited about.
- Dave is showing how to systematically design a functional validation library.
- For some reason I’ve been allowed to speak on essential patterns in Scala.
If you’re planning to go to Amsterdam and haven’t booked a ticket yet, you should be able to use the code
elsh50 for a discount.
Videos from Scala Days SF
Hope you enjoyed this edition of the newsletter. Is there a theme you’d particularly like us to cover next time? Let me know your thoughts by replying to this email.