MP3 Audio [29 MB] Download Show URL

In this episode I talk with Bartosz Milewski. We talk his introduction to category theory, teaching category theory, comparison of Monads and other composition patterns in functional programming to composition patterns in object oriented programming, and finish with some philosophical thoughts on category theory.

Our Guest, Bartosz Milewski

@bartoszmilewski on Twitter

https://bartoszmilewski.com/

Bartosz’s YouTube channel for his category theory videos

Announcements

EuroClojure is coming up in Bratislava, Slovakia from October 25-26. Visit http://euroclojure.org/ to find out more, register, or sign up for their mailing list.

The 2016 edition of ScalaIO will take place in Lyon, France, on 27th and 28th of October. Visit http://scala.io/ for more information and to register.

CodeMesh is taking place the 3rd and 4th of November with tutorials on the 2nd of November. Tickets are available now, but they are going fast. Visit codemesh.io to register and submit your talk.

Scala Wave is coming up on the 25th and 26th of November in Gdańsk, Poland. Visit http://www.scalawave.io/ to find out more and sign up for their newsletter for updates.

Destination Code, a new unconference starting in Utah, is having its inaugural event this December. Visit http://www.destination.codes/ to find out more.

The 2016 Clojure Conj will be taking place in Austin, TX on December 1st – 3rd. Visit http://2016.clojure-conj.org for more information and to register.

Lambda Days will be taking place again on the 9th and 10th of February 2017. Visit www.lambdadays.org to submit your talk and keep updated as more information becomes available.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Bartosz

Bartosz’s videos on category theory on YouTube

How Bartosz became exposed to category theory

Elegant code, and what does it mean for code to be elegant?

Exposure to functional programming through C++

Template meta-programming in C++

Andrei Alexandrescu’s Modern C++ Design: Generic Programming and Design Patterns Applied

Haskell

Translating functional solutions in Haskell to C++

Exposure to category theory

Categories for the Working Mathematician

Edward Kmett

Understanding category theory through examples

What clicked about category theory once Bartosz “got it”

“Category Theory can be simplified to just two things, composition and identity”

Futures in C++

Futures are monads

“Monads are just about how to compose stuff”

Bartosz’s posts on Futures

– Broken promises–C++0x futures

– Futures done right

– C++17: I See a Monad in Your Future!

“You cannot design a good library, if you don’t understand category theory, or at least elements of it”

Category of Types and Functions

“A composition is the essence of a category”

“A monad is a way about composing side-effects”

Category theory patterns become hard to understand because they are so general

Function composition in an imperative language

“A monad is the overloading of a semicolon”

Background of attendees in his courses

Interest in teaching category theory to artists and other domains

Curry-Howard Isomorphism

“You take a concept from logic, you can translate it almost mechanically to a concept in programming, and visa versa”

LamdaDays 2016

Philip Wadler’s keynote on Curry-Howard Isomorphism at LambdaDays 2016

Bartosz’s Curry-Howard-Lambek Isomorphism at LambdaDays 2016

Imposing structure on the universe because that is the only way we can understand stuff

Wondering if “mathematics is just the way of studying our minds rather than an objective reality”

“If category theory is the study of the human mind, then everything must follow the laws of category”

Possibility to take category theory and explain it using examples from other domains

Introduction to Category Theory talk as a starting point

How useful it is to learn category theory???

“I think that getting this higher-level view […] drives you to better solutions”

Importance of keeping your mind open because you never know when something will be useful

As always, a giant Thank You goes to David Belcher for the logo design.