Getting Started with Category Theory
21–30 of 36 posts
Re: Getting Started with Category Theory
#22Re: Getting Started with Category Theory
#23Earlier quoted context omitted.
I wouldn't have described graph theory that way. But category theory seeks to formalise and generalise mathematics itself. Another popular branch of mathematics that does this is set theory, which you may have been thinking of rather than graph theory. Set theory is generally taught before category theory at universities. "Simpler" is very subjective, but set theory is often seen as more intuitive because some of the…
I always find it a bit weird, when people compare set theory to category theory like this. When talking about set theory as a foundation for mathematics, I always think of Zermelo-Fraenkel[1] set theory (possibly with Choice), which is an axiomatic system, from which you can build a lot of maths (at some point one might want to introduce universes[2], but whatever). I'm not aware of a similar axiomatic system using c…
https://www.quora.com/Are-there-any-axioms-for-category-theo...
Re: Getting Started with Category Theory
#24Earlier quoted context omitted.
I always find it a bit weird, when people compare set theory to category theory like this. When talking about set theory as a foundation for mathematics, I always think of Zermelo-Fraenkel[1] set theory (possibly with Choice), which is an axiomatic system, from which you can build a lot of maths (at some point one might want to introduce universes[2], but whatever). I'm not aware of a similar axiomatic system using c…
I've found the best layman's grounding for Category theory's relationship to axioms to be in Bartosz's post here: https://www.quora.com/Are-there-any-axioms-for-category-theo...
Re: Getting Started with Category Theory
#25Earlier quoted context omitted.
I love category theory, but I think there's a secret category of "high effort programming things" that programmers who have done them love to say that "Everyone should do x because it will make them a better programmer". Here's the kind of things I'm thinking of: - Learn category theory - Build an interpretter/compiler - Develop your own programming language - Learn about and built distributed systems - Learn to writ…
Every other item in your list is actually used to produce technology except one. Compilers? Used to produce executables form source code. Programming language? Allows us to write code using higher abstraction. Distributed systems? Allows us to build systems across multiple machines, users, continents, etc. GPU? Allows us to speed up heavily parallel code for graphics and scientific applications. Assembly? Allows us t…
It's hard to see how learning about Hindley-Milner type inference isn't academic type theory (which I'd argue is a category theory subfield) but applying Hindley-Milner type inference is clearly practical and related to producing technology.
I'm not saying all branches of category theory have a section that relates to directly producing technology, but I'd definitely argue that some do.
Re: Getting Started with Category Theory
#26Venting: I'm so tired of this. I've countless times learned that something something monoid of endofunctors. And yet, I've never been able to make that knowlwdge more useful than "do a flatMap here". Not looking for solutions. Ok with emotional support.
You are not alone. Composition and the general idea of type is enough for most of us. You do not need Schopenhauer to discover that life is hard, or Hegel to know that opposites exist and sometimes their relation creates something different “not in the middle”.
I think especially in our fast moving, low attention society, there's a tendency to reduce philosophers like Schopenhauer to a few bullet points. I definitely was really guilty of doing this when I studied philosophy in university a while back. But you get so much more out of spending time reading Schopenhauer than just those bullet points- you get insight into a whole person's way of seeing things. That's such a great thing to spend time doing!
I do realise I'm mostly arguing against a point that you didn't make, or at best, made only tangentially, but, as a pedant on the internet, I couldn't turn down the opportunity to give my unsolicited opinion.
Re: Getting Started with Category Theory
#27Earlier quoted context omitted.
You are not alone. Composition and the general idea of type is enough for most of us. You do not need Schopenhauer to discover that life is hard, or Hegel to know that opposites exist and sometimes their relation creates something different “not in the middle”.
Just gonna unecessarily jump in to defend Schopenhauer, and maybe Hegel! (I'll leave category theory to look after itself) I think especially in our fast moving, low attention society, there's a tendency to reduce philosophers like Schopenhauer to a few bullet points. I definitely was really guilty of doing this when I studied philosophy in university a while back. But you get so much more out of spending time readin…
Of course. But nevertheless, Category Theory or Schopenhauer are good ways to get interesting insight which may (emphasis) be useful. But not as a tool (which is how CT is usually sold in those tutorials), but as a (long) path to knowledge. Only some times and some people get "useful" results from studying them.
Trying to sell CT as a means to a utilitarian end is prostituting it. Like selling Hegel to learn how to body-build.
Thanks for taking the time!
Re: Getting Started with Category Theory
#28Earlier quoted context omitted.
I've found the best layman's grounding for Category theory's relationship to axioms to be in Bartosz's post here: https://www.quora.com/Are-there-any-axioms-for-category-theo...
That's a nice post, and it actually reinforces my thoughts: You already need a foundational theory before coming to category theory.
Re: Getting Started with Category Theory
#29Earlier quoted context omitted.
Just gonna unecessarily jump in to defend Schopenhauer, and maybe Hegel! (I'll leave category theory to look after itself) I think especially in our fast moving, low attention society, there's a tendency to reduce philosophers like Schopenhauer to a few bullet points. I definitely was really guilty of doing this when I studied philosophy in university a while back. But you get so much more out of spending time readin…
Right you are, indeed. I was first annoyed by your comment but (miraculously) I stepped aside for a few seconds! Of course. But nevertheless, Category Theory or Schopenhauer are good ways to get interesting insight which may (emphasis) be useful. But not as a tool (which is how CT is usually sold in those tutorials), but as a (long) path to knowledge. Only some times and some people get "useful" results from studying…
Interesting as category theory is, and even while it does have applications, I think claiming that it's value is somehow in helping you learn Haskell/Elm/Gleam etc is just dishonest and misleading.
Re: Getting Started with Category Theory
#30Venting: I'm so tired of this. I've countless times learned that something something monoid of endofunctors. And yet, I've never been able to make that knowlwdge more useful than "do a flatMap here". Not looking for solutions. Ok with emotional support.
First I'll say that I absolutely get this head-banging-on-desk feeling of no progress. Monads got me like that for a while but F-Algebras/recursion schemes got me like that much more, so make sure you keep your distance from them haha. I'm sorry to have contributed to your frustration.
It actually sounds like you've grasped monads quite well. flatMap is the essence. I won't try to explain it though, because I know that's not what you're looking for, and I don't want to contribute to your frustration even more!
I will say that my usual readership includes a lot of people who like designing type systems for programming languages. Category theory helps make sure you don't make mistakes in this process, though there are other techniques of course. I also find it helps my ability to think formally a lot, which has helped me a ton in studying and discussing philosophy, a separate interest of mine. Hopefully you can see from my post that I didn't really make an effort to justify or explain category theory for regular programmers much. Category theory is overhyped for that use case. I personally really hate reading overly mathematical Haskell code!! But if you just enjoy math or philosophy or learning or thinking, I hope you can have some fun with the beauty of these ideas. And since authoring the post I've added a wiki https://ryanbrewer.dev/wiki that can give more accessible background on things like monoids.
I could be wrong but I don't think I mentioned a monoid of endofunctors or flatMap a single time in the post. I did mention monads, as an example of natural transformations, but completely from the perspective of beautiful math, not from a programming perspective at all. And once you learn about adjunctions, monads get even more gorgeous! https://ryanbrewer.dev/wiki/adjunction
But all of this math takes a ton of patience. I'm someone who loves programming because the feeling of solving a hard bug is exhilarating and satisfying. The emotional payoff is bigger the longer it takes, and math is the same way for me. Don't beat yourself up about it, and don't feel bad if category theory just isn't helpful or enjoyable for you and your particular way of thinking! :)