| That's a good explanation of Monoids. You can also watch (at least the first half) of this video for more on Monoids: https://www.youtube.com/watch?v=WsA7GtUQeB8 There are already a good number of people trying to explain Monads in this thread, so I won't attempt it. But I'll say this (in the context of Haskell): In Haskell, like how Monoid is a typeclass, Monad is just another typeclass. So me mentioning "typeclass" twice in a sentence suggests that you probably have to first understand typeclasses and data types. Also, I wouldn't recommend tackling Monad right after grasping Monoid. I'd recommend you read about and understand Functor and Applicative functors first, and that will ease you into understanding Monads and actually why you would want to have them. So, you may want to read these pages from Wikibooks in this order: https://en.wikibooks.org/wiki/Haskell/Classes_and_types https://en.wikibooks.org/wiki/Haskell/The_Functor_class https://en.wikibooks.org/wiki/Haskell/Applicative_functors https://en.wikibooks.org/wiki/Haskell/Applicative_prologue The last link is the first section of a chapter on Monads; so use the links on the sidebar to read the subsequent sections of the chapter. Typeclassopedia is another great resource for the typeclasses I mentioned: https://wiki.haskell.org/Typeclassopedia |