One simplistic but useful analogy I've found is that monads are a way to control program flow with functions. A monad is to functional programming what if/else is to imperative.
It may not cover all the nitty gritty about what is and isn't a monad. But it gets you a long way to understanding why you might use them.
It may not cover all the nitty gritty about what is and isn't a monad. But it gets you a long way to understanding why you might use them.