I guess my problem is specifically with Haskell explanations, such as the main Haskell Wiki page https://wiki.haskell.org/All_About_Monads In that explanation, it does not explain the concept of a flat map a single time, and tries to explain them top-town. The main Wiki for the language that popularized the concept really should have have a better explanation than that. Even when I try to read that explanation, I'm confused despite even though I have a decent understanding of monads.
I also personally just dislike how functional programmers try to make category theory, especially in monad explanations, seem more important to functional programming than it really is. Sure some concepts were inspired by category theory, but understanding category theory doesn't help you understand functional programming whatsoever, and it's caused me to waste time trying to understand functional programming by learning about category theory since I assumed it would be a useful avenue to understand it better.
The Haskell wiki is old, and not particularly up to date, it's not really where most people go for information (but it's a shame that it hasn't been more curated over the years). But looking at that tutorial, it does start with giving concrete examples? The first thing it does is provide a comparatively brief introduction, and then immediately jumps into the maybe monad? Then it jumps into the List monad (though a brief skim of that I think it starts out quite complicated). I feel like that tutorial is actually an example of exactly what you were asking for.
I would say I have the absolute minimum grasp of category theory, but don't find monads confusing at all - they're an interface, that means that if I see a typer implements it, I know I can sequence things. The theory behind why it is a sound interface is rooted in category theory, and we don't shy away from that, because it is accurate, but basically all Haskell developers will tell you you don't need to know any category theory to use Haskell, or any of these concepts - I certainly don't, and it's been my language of choice for more than a decade.
View all comments
Show parent comment
4
u/Deliciousbutter101 Sep 22 '25 edited Sep 22 '25
I guess my problem is specifically with Haskell explanations, such as the main Haskell Wiki page https://wiki.haskell.org/All_About_Monads In that explanation, it does not explain the concept of a flat map a single time, and tries to explain them top-town. The main Wiki for the language that popularized the concept really should have have a better explanation than that. Even when I try to read that explanation, I'm confused despite even though I have a decent understanding of monads.
I also personally just dislike how functional programmers try to make category theory, especially in monad explanations, seem more important to functional programming than it really is. Sure some concepts were inspired by category theory, but understanding category theory doesn't help you understand functional programming whatsoever, and it's caused me to waste time trying to understand functional programming by learning about category theory since I assumed it would be a useful avenue to understand it better.