Monad - FunFunFunction #21
Why Hacker News recommends it
Recommended to people confused by monads as a friendly, practical explanation for JavaScript developers, with one commenter saying it finally made it click.
What it is
An episode of FunFunFunction explaining monads in JavaScript as functors that also implement flatMap. It builds on the preceding functor episode and works through code examples.
Recommended by 3 HN commenters across 3 different months, 2016 to 2021.
What Hacker News said
Strong rec k__ · 2021-10 · on “Functors, Applicatives, and Monads in Pictures (2013)”
I read this example years ago, and it didn't clear anything up for me. After half a year of trying to understand monads, I saw a video by MPJ/Funfunfunction [0] and it finally made sense. [0] [this video]
Recommends intellectable · 2016-07 · on “Functional Programming Jargon”
I like how mpj explains it. Monad - FunFunFunction #21 [this video] Furthermore, the creator of Elm has a fun explanation too. Evan Czaplicki - Let's be mainstream! User focused design in Elm - Curry On [LINK] More serious computer scientist explains monads in the following. Erik Meijer: Functional Programming [LINK] and here too [LINK]
Recommends icc97 · 2018-02 · on “JavaScript Promises Discussion: Make Them Monadic? (2013)”
Here's a half baked explanation, as in just the flatmap part. map is understood in javascript. So you 'just' need to make the leap to flatmap. Which is mapping something and flattening the result. So still you need to learn is what flatten is. But that's not too hard to learn. Try the funfunfunction video [0] [0]: [this video]
Cites cosinetau · 2017-03 · on “Attitudes That Lead to Maintainable Code”
A nomad is something that goes "nom!" ;) A monad is basically an function, in the algebra sense, that will take a set of input, and map it to a different output. That's the most simple definition I can give without getting into the math, and it's been a minute since I've really gotten into Group theory. Maybe through a Haskell tutorial for some hands-on guidance? [LINK] [this video]