# Presentations and Talks

These talks are aimed at beginner to intermediate Scala programmers that are
interested in learning more about pure functional programming in Scala. I
like to present a topic in depth whilst keeping it accessible. Feel free to
contact me with questions and feedback on any of these talks, or on my
availability to speak at your event.

### Scale by the Bay 2020 - Applicative: The Origin Story

We've all seen many Monad tutorials, and maybe a few on Functors, but Applicative is lesser known, which is a shame because it has some super powers. In this talk I'll tell the origin story of applicative, and show that once fully understood, it is a very powerful tool in your functional programming toolkit. The talk begins with a quick introduction to pure functional programming with effects, for beginners in the audience. Next we'll look at the original paper in which applicative programming with effects is described. The code will be translated from the original Haskell to Scala, and we can see we can solve problems first with Monads, then more flexibly and elegantly with Applicative. Finally, we'll look at how Applicative plays its part in the much lauded traverse function.

Blog post: What's Ap?

Slides: Applicative: The Origin Story

### Toronto Scala Meetup 2020 - Applicative: The Origin Story

What's the different between Monadic and Applicative composition? Where
did Applicative come from? Find out in this in-depth session which takes
you from the basics of pure functional programming to an advanced example
using applicative functors, monoids, traverse, const and parallel IO.

Blog post: What's Ap?

Slides: Applicative: The Origin Story

### Scala Love 2020 - What's Ap?

In this talk find out about three mapping functions map, flatMap and
the lesser known ap. For each one we will learn what we can from its type
signature, see what it does for some common data types and ultimately
consider what it means from a more theoretical standpoint. We wrap up with
an example of optimized image processing using the ap function.

Blog post: What's Ap?

Slides: What's Ap

### Scale by the Bay 2019 - A Gentle Introduction to Comonads

What are Comonads and how do we apply them to interesting problems?

Blog post: Comonads for
Life

Slides: Gentle Introduction to Comonads