Hacker News new | ask | show | jobs
by MawNicker 3484 days ago
There are distinct notions of monad. Just a note.
3 comments

That's not really helpful without at least two distinct notions of monads shown.
a data class / object is a monad if it confirms to the 3 monadic laws [1]: Left identity, Right identity and Associativity.

To do this, it must implement two functions. 1. chain (also called 'flatMap', '>>=' in haskell). 2. unit (sometimes called 'of', for instance in js).

Nothing more is needed to understand and implement a monad in any language.

[1] https://wiki.haskell.org/Monad_laws

Is that so? Just a note.