Abstract Fun-sense: a functional perspective on life
Everything can be a function if you look at it the right way; we can characterise familiar concepts like sets, lists and even plain values as functions.
Thinking about such basic objects as functions can seem unnecessarily abstract, but it isn’t just an exercise in increasingly intimidating notation! It turns out to be an elegant perspective that allows us to glimpse a more powerful abstraction.
In this talk, we’ll see how playing with this notion leads to the Yoneda Lemma, a key result in category theory. We’ll build up some intuition and motivation for the Yoneda Lemma, and return to the notion of viewing objects as functions to appreciate some of its implications.
Outline/Structure of the Talk
- Defining values and data structures (e.g. sets, lists) as functions
- Exploring parametric polymorphism of functions (e.g. functions that have an implementation of A -> FA for all types A)
- Introducing the Yoneda Lemma, and interesting implications
I’ll aim to provide attendees with some motivation for the Yoneda Lemma, and some intuition about the powerful implications of the result.
More broadly, I hope to share my own appreciation of the beauty of category theory and attempt to show its relevance to functional programming, although I make no promises to direct practical applications!
Anyone with an interest in functional programming concepts, particularly on the theoretical/abstract side
Prerequisites for Attendees
This talk is intended to be accessible to all attendees enthusiastic about functional programming. I’ll aim to define the functional programming concepts used, but familiarity with the notion of a functor would be ideal.
The main requirement is openness to appreciating the beauty of a nice abstraction - without the need for direct and immediate practical application.