3 ms·
I think the downvotes are because it kind of sounds like you didn't read the article and are saying the things that the author directly states as a "misconcepti
by mrspeaker 5y ago
I think the downvotes are because it kind of sounds like you didn't read the article and are saying the things that the author directly states as a "misconception":
"It is a common misconception that "monad is the same as flatmap", which has even made its way into some "monad libraries" in non-Haskell languages. flatmap is not "monad". flatmap is the particular implementation of the monad interface on lists. If you understand flatmap, you understand the monad implementation for the list datatype... you do not understand "monads" in general."
Maybe you think the author is wrong, but your comment didn't read like you were addressing these points.
- _ph_ 5y agoOr maybe the article isn't understandable. Sorry, I tried to read the article and just got confused and don't understand, what the article is trying to say. So it would be a good start to present the understanding one might get from that article and then get constructively corrected, where this understanding is wrong. In my eyes, this is the only way to understand a complex topic which isn't explainable in common language.
- BoiledCabbage 5y agoSo great call out. My mention of the downvotes wasn't in reference to my comment, but into the parent I was replying to who is clearly newish to Monads. And their summary is actually fairly accurate. If you can read and understand this comment (https://news.ycombinator.com/item?id=27639779 https://news.ycombinator.com/item?id=27639779) then you understand 80% of the practical use of Monad. And the majority of people who understand that comment, could now implement the flatMap/join/>>= for the "Maybe a" Monad. And could probably implement ">>" for it as well. And if you can implement "bind" for a randomly requested Monad, while you may not know what a Kleisli Category is, nor be able to define the monad laws and might still make a mistake implementing one, you have the essential concept of a Monad.