[Math] Resources for learning practical category theory

ct.category-theoryonline-resourcestextbook-recommendation

I've been doing functional programming, primarily in OCaml, for a couple years now, and have recently ventured into the land of monads. I'm able to work them now, and understand how to use them, but I'm interested in understanding more about their mathematical foundations. These foundations are usually presented as coming from category theory. So we get explanations such as the following:

A monad is a monoid in the category of endofunctors.

Now, my goal (partially) is to understand what that means. Can anyone suggest a gentle introduction to category theory, particularly one aimed at programmers already familiar with a functional language such as ML or Haskell, with references for further reading? Resources not necessarily aimed at programmers but accessible to readers with a background in discrete math and first-order logic would be quite acceptable as well.

Best Answer

Online resources:

Books (not free):

  • Benjamin Pierce: Basic category theory for computer scientists, MIT Press 1991; a slight expansion/update of the earlier (and free) CMU-CS-88-203 report
  • MacLane - solid mathematical foundations, but hardly any references to computing
  • Martin Brandenburg - Einführung in die Kategorientheorie (in german)

Category theory in Haskell:

Another list