Settings

Theme

Applied Category Theory: Textbook (2019)

ocw.mit.edu

110 points by johnsonjo 2 years ago · 16 comments

Reader

rthnbgrredf 2 years ago

I recently compiled a list with more to read on the topic: https://github.com/madnight/awesome-category-theory

AugustoCAS 2 years ago

Thanks for sharing this! I'm just getting my head around category theory (in Haskell).

I would appreciate if anyone knows of a small project out there that uses category theory to learn how to design and architect a solution (even better if it's in Haskell!)

  • wavemode 2 years ago

    As someone who used to use Haskell a lot, I will tell you that learning category theory isn't really going to improve your practical ability to architect Haskell code.

    If you're simply curious about the mathematical structures that Haskell's standard typeclasses are named after, then by all means learn category theory.

    But if you're trying to improve your ability to use those typeclasses to write real-world software, I recommend "Haskell From First Principles" and/or "Effective Haskell". And get your hands dirty writing actual programs - practice makes perfect.

  • hibernator149 2 years ago

    This is not strictly (purely?) category theory, but two fun little projects that will teach you a lot (or reinforce what you already know) are writing your own parser combinator library (https://www.cs.nott.ac.uk/~pszgmh/pearl.pdf) and Lens library (https://en.m.wikibooks.org/wiki/Haskell/Lenses_and_functiona...).

staunton 2 years ago

Has anyone here ever used category theory in a business (or any purpose other than publishing papers)? (Don't give me "I used a monad once while programming", I mean the kind of stuff that book is about)

  • jksk61 2 years ago

    these kind of books are "philosophical" books. In the sense that the usage can be written/explained in other ways. For instance, monads are just a way to see that if you compose two ducks you still have ducks that behave in the same manner, but that's almost the same thing as having a class and define the composition arrow as a method.

    The only difference is that with CAT you have theorems asserting what's true and what's not, with classes I don't think there's much literature. A similar reasoning can be applied to neural networks as there are very different POV: someone will look at them as ODE systems, other as a pure discrete dynamical system or as an optimization problem or whatnot.

  • corethree 2 years ago

    I've used it to optimize SQL. The principles I used in SQL can be used in other places as well.

    I think functors are easier to understand and more fundamental to category theory and programming than monads.

    • contravariant 2 years ago

      Monads are fairly simple as well if you use C#'s brilliantly chosen names SELECT and SELECTMANY for the two relevant maps.

      • agumonkey 2 years ago

        > SELECTMANY

        is that a form of flatmap ?

        • mormegil 2 years ago

          That's exactly it, SelectMany is what in .NET corresponds to flatMap in e.g. Java. (And, unlike the parent, I don't like the narrow scope of .NET naming very much, focusing on just the list monad (a.k.a. IEnumerable).)

  • agumonkey 2 years ago

    The idea of sharing structural properties/invariants between abstractions is something that is in my mind often, and reading the book intro resonates with me.

  • zmgsabst 2 years ago

    Domain Driven Design is essentially applied category theory:

    You develop a language that models your domain, translate that into a diagram, and translate that diagram into code.

    (Okay, actually topos theory since you’re going between type theories and diagrams — but you use the diagrams to move between type theories and define “equivalent structure”.)

  • wisnesky 2 years ago

    We use it for data integration https://www.categoricaldata.net

deterministic 2 years ago

CT is great if tou are into abstract math. And it is a complete waste of time if you are looking for ways to become a better developer.

throwaway626 2 years ago

David Spivak is a treasure. One of the clearest expositors of category theory out there.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection