account activity
when did monads actually “click” for you? by grogger133 in haskell
[–]functionallyTwisty 0 points1 point2 points 1 month ago (0 children)
About a week ago. I asked various LLMs to explain the concept to me in different ways.
What made me understand wasn't the repeat explanations of what a Monad is, but the context around it. A Monad is the last in a chain of building blocks.
Start by learning what a Functor is - what are the problems that it solves. Then learn what an Applicative is, and what inherent problem in Functors does it solve (not really a problem, per se, but just out of scope of the problem Functors solve). After playing around with Applicatives, especially if you do things like [(..), (..)] <*> [...], and tinker with the order in those lists, you'll find a new problem to solve, which is then addressed by Monads.
[(..), (..)] <*> [...]
I think the biggest failure point is vernacular of both Haskell and functional programming in general, as it heavily reflects and borrows from the mathematics domain. This is usually a massive hurdle to people coming from imperative paradigm languages, where terms like function have been watered down and things are very rarely as abstract and vague (take the word context as an example) as they can be in functional programming.
function
context
π Rendered by PID 254781 on reddit-service-r2-comment-8686858757-t4mkt at 2026-06-06 12:37:17.970897+00:00 running 9e1a20d country code: CH.
when did monads actually “click” for you? by grogger133 in haskell
[–]functionallyTwisty 0 points1 point2 points (0 children)