Good videos, with context.
Monad - FunFunFunction #21

Monad - FunFunFunction #21

Fun Fun Function
3 HN recommenders · discussed 2016–2021
Open YouTube ↗

About this video

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.

Why it appears in the archive

Recommended to people confused by monads as a friendly, practical explanation for JavaScript developers, with one commenter saying it finally made it click.

AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.

From the Hacker News discussion

k__ · 2021-10 · strong rec

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] [VIDEO]

Read original comment ↗
intellectable · 2016-07 · rec

I like how mpj explains it. Monad - FunFunFunction #21 [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]

Read original comment ↗
icc97 · 2018-02 · rec

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]: [VIDEO]

Read original comment ↗
cosinetau · 2017-03 · reference

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] [VIDEO]

Read original comment ↗