Dominic Verity presents a gentle introduction to Category Theory, perfect for those who've been playing with Haskell for some time and wanted to know what it's all about.
Speaker: Associate Professor Dominic Verity
Centre of Australian Category Theory and
MU Programming Languages Research Group.
Faculty of Science, Macquarie University
As functional programmers most of us will, at some point, have heard about a bag of mathematical tools which rejoice under the collective term "category theory". Maybe we caught the whisper that our favourite functional "design pattern", the monad, had originally been inherited from category theory. Possibly we were taught that category theory has been shown to be a convenient tool for organising the formal semantics of programming languages. If our functional mentors were particularly inclined to such things, they may even have tried to claim that functional programming was, in some sense, the "internal language" of category theory. In this talk, I hope to convince you that all of these claims are indeed founded in some truth. To do that my intention is to introduce you to just enough category theory to show that monads and arrows do arise naturally from purely categorical considerations. Along the way we will find that functional programming really can be regarded as the language in which (some parts of) category theory can be written. Of course, were this talk simply an attempt to illustrate how pragmatic functional programming practice can be encoded as an exercise in abstract mathematics, then I suspect that I will win few friends by delivering it. Instead, its purpose is to illustrate how we may plunder new functional programming principles from our categorical colleagues.