4 ms·
I always feel like I'm at least seven or eight layers removed from anything I can relate to when I read about category theory. I'll think, "Hey, let me check t
by drblast 13y ago
I always feel like I'm at least seven or eight layers removed from anything I can relate to when I read about category theory.
I'll think, "Hey, let me check this out on Wikipedia..." and I'm six linked articles deep trying to understand the first paragraph of the original article, and I'm no closer to anything concrete.
It's obvious at that point that the "top-down" approach is the wrong way to go and that really the only way to develop an understand this is to take a class, or buy a book that may or may not be more tractable than Wikipedia.
At that point, I'll consider that there are many other languages that are supposedly esoteric that I've never had a problem grasping, and that I know of few advantages that Haskell offers over, say, F#, for doing things I need to do. And even though I've written some parsers in Haskell and it was a generally nice experience, I just don't have time to learn category theory from the ground up.
I also realize I really, really need to understand how my tools work from cradle to grave or I'm deeply unsatisfied.
At that point I abandon Haskell as a curiosity and go on with the rest of my life.
- dllthomas 13y agoLike the article here states, though, you don't need to learn category theory to learn Haskell. Most math is useful in driving intuition and insight, and Category Theory is no different in that respect, but learning Haskell (in particular enough to use it and write normal applications and libraries, not necessarily create the neatest cutting-edge type-trickery libraries - some of which are amazing) requires much more of a concrete "here's how you use these things" than any knowledge of Category Theory.
- chongli 13y agoThe real problem, if you ask me, is that we've all gone through elementary and secondary school working with all kinds of mathematical objects without learning their proper names. Every kid ought to be told what semigroups, monoids, groups and rings are shortly after learning addition and multiplication.
- j2kun 13y agoIf you're interested in more of a bottom-up approach, I have a series of articles on my blog explaining category theory with the programmer's perspective in mind (though I do assume you know a little bit of higher maths; sets and functions, mostly). See the section titled "Computational Category Theory" on this page: http://jeremykun.com/main-content/ http://jeremykun.com/main-content/ I've let the series sort of fall to the wayside recently as I focused on other content, but there's enough to get you up to a categorical understanding of map, fold, and filter (and a mathematical justification for why fold is the "most" universal one of the three)
- drblast 13y agoThanks, these articles are excellent. In particular, the first that explains ML syntax in terms that I can relate to other languages before you launch into the concepts is great. Almost every Haskell intro I've read tries to explain concepts in Haskell's syntax. If the reader is unfamiliar with both, this is baffling.
- Dewie 13y ago> I always feel like I'm at least seven or eight layers removed from anything I can relate to when I read about category theory. I'll think, "Hey, let me check this out on Wikipedia..." and I'm six linked articles deep trying to understand the first paragraph of the original article, and I'm no closer to anything concrete. I feel like that with most Wikipedia math articles.