Categories from scratch
staff.science.uva.nl
staff.science.uva.nl
Just kidding, I appreciate the trailhead. :)
"A monad is just a monoid in the category of endofunctors, what's the problem?"
(Note the instead.)
I understand the author's point, and perhaps these examples are easier to follow for non-math people.
However, to be fair, this approach is the approach taken by pretty much every single description of Category Theory I've read. One of the first things MacLane does is provide a bunch of relevant and familiar examples (groups, rings, etc).
That's the inherent difficulty in discussing category theory solely in terms of programming, it's hard to see the forest for the trees if you don't have a bunch of well-defined categories you can draw examples from and interrelate.
In an undergraduate course one would typically start with examples from algebraic topology which has a lot of great cross-categorical relations, like how the homology group of a topological space is an example of a functor from the category of groups to the category of topological spaces.
Worse, I don't see any point in categorical models if you want to think solely in terms of programming.
> one would typically start with examples from algebraic topology
My initial exposure was along these lines as well, although the idea of a "course" in category theory seems a bit odd (not in the sense of wrong or bad, just not common-place).
Talking about categories in the context of everyday functional programming (even where the connections are correct) always seemed abstruse and a bit silly. If you're not using categorical models, what's the point (other than giving fancy names to things)? And if you don't have some background in algebra or topology and a specific research goal, why build the models?
My point was mostly that I don't think there is a path to really understanding the full generality of category theory through functional programming alone, one has to go learn the pure mathematics as well.
[1] https://hackage.haskell.org/package/pipes-4.1.1/docs/Pipes-C...
I scoffed at the "we'll explain it in computer terms" notes at the beginning, but that caveat really helped.