This is so good. I'm not sure how idiosyncratic my reaction is, but this kind of fluid, beer in one hand (and "go look up the axioms on Wikipedia") mode of presentation is such an amazing way to introduce and motivate a topic. Just loved this.
This is excellent: very engaging, very clear. I'm learning Haskell at the minute, and this really solidified a few abstract concepts for me[1]
NB I'd say my maths knowledge doesn't extend very far beyond GCSE level, and yet this talk was very understandable, everything described made a lot of sense. Very highly recommended.
[1] and I think will ever so slightly mitigate the pain/incredulity of finding x library has, in lieu of documentation, only a category-theory-related paper...only ever so slightly though.
Does your programming language has the map function? That comes straight from CT. A simple but concrete result: map (f.g) = map f . map g
(i.e. if you have two functions that compose, mapping the composition is the same as mapping each one and compose the results)
In functional programming, a lot of concepts are from CT, specially because of the focus on composition that both have. By using CT results they can do pretty crazy things with code and have the math to back it up :)
To be fair, I just recently started learning the subject, but I think it has a lot to offer.
Category theory is a language for formulating results in mathematics concisely, which often need input from the problem domain to be proven. Since it allows certain properties to be stated concisely it also makes it easy to see commonalities between structures in disparate areas of mathematics. To give you several concrete examples, which will probably be meaningless to you:
If you were to ask what categories are like the category of sets and you were very smart you would arrive at the notion of Topos.
The Eilenberg-Zilber theorem states, that two functors between chain complexes are adjunctions to each other.
The initial result of Galois theory can also be formulated as an adjunction between two lattices.
Just recently the so called "tilting lemma" established an equivalence of categories between certain categories of "perfectoid algebras" over different fields.
In programming languages whenever you see something resembling a dataflow diagram, there is a monoidal category lurking in the background. The same is true for reaction diffusion networks and all the digital circuit diagrams ever drawn.
Typed lambda calculus is the "internal language" of cartesian closed categories.
Similarly linear logic (where resource tracking in Rust comes from) can be seen as the internal logic of some kind of bimonoidal category.
There are countless other examples along those lines, the point is that in modern mathematics all the things you consider can be made into a category in one way or another, establishing functors between them gives you a way of studying one thing in terms of the other. Most of the time category theory itself helps very little in doing so. It is just a language for formulating results. Actual research in category theory is done by comparatively few people and is nowadays probably mostly in the area of "higher category theory".
I'm sorry, but I feel I have to dissent from the positive comments being left here. This presentation might be good if you already understand category theory, but for someone like me who knows nearly nothing about it, the pedagogy is absolutely horrible. A much better place to start is this:
where you will actually find a concise definition of what category theory is, and what distinguishes it from more familiar mathematical constructs like set theory.
15 comments
[ 4.9 ms ] story [ 45.2 ms ] threadGreat speaker, though!
NB I'd say my maths knowledge doesn't extend very far beyond GCSE level, and yet this talk was very understandable, everything described made a lot of sense. Very highly recommended.
[1] and I think will ever so slightly mitigate the pain/incredulity of finding x library has, in lieu of documentation, only a category-theory-related paper...only ever so slightly though.
1. http://arxiv.org/abs/1302.6946
(i.e. if you have two functions that compose, mapping the composition is the same as mapping each one and compose the results)
In functional programming, a lot of concepts are from CT, specially because of the focus on composition that both have. By using CT results they can do pretty crazy things with code and have the math to back it up :)
To be fair, I just recently started learning the subject, but I think it has a lot to offer.
If you were to ask what categories are like the category of sets and you were very smart you would arrive at the notion of Topos.
The Eilenberg-Zilber theorem states, that two functors between chain complexes are adjunctions to each other.
The initial result of Galois theory can also be formulated as an adjunction between two lattices.
Just recently the so called "tilting lemma" established an equivalence of categories between certain categories of "perfectoid algebras" over different fields.
In programming languages whenever you see something resembling a dataflow diagram, there is a monoidal category lurking in the background. The same is true for reaction diffusion networks and all the digital circuit diagrams ever drawn.
Typed lambda calculus is the "internal language" of cartesian closed categories.
Similarly linear logic (where resource tracking in Rust comes from) can be seen as the internal logic of some kind of bimonoidal category.
There are countless other examples along those lines, the point is that in modern mathematics all the things you consider can be made into a category in one way or another, establishing functors between them gives you a way of studying one thing in terms of the other. Most of the time category theory itself helps very little in doing so. It is just a language for formulating results. Actual research in category theory is done by comparatively few people and is nowadays probably mostly in the area of "higher category theory".
[0] http://www.haskellforall.com/2012/09/the-functor-design-patt...
[1] http://wlu.ca/faculty-profiles/arts/steven-a.-roberts.html
http://ncatlab.org/nlab/show/category+theory
where you will actually find a concise definition of what category theory is, and what distinguishes it from more familiar mathematical constructs like set theory.