This page contains links to the slides and code from my talk “Thirteen ways of looking at a turtle”.

Here’s the blurb for the talk:

In this fast-paced talk, I’ll start with the well known API for turtle graphics, and then stretch
it to the breaking point by creating 13 different implementations, each demonstrating a different functional programming technique.

Along the way, we’ll use partial application, functional dependency injection, validation
with Success/Failure results, the Either monad, the State monad, agents with message queues, event sourcing,
stream processing, capability-based design, and the interpreter pattern (aka free monad). Phew!

This talk is based on my blog posts on this topic: