This is great. Finally understand monads a little better. Definitely saving this for later.
Why do monads come up so often when people talk about FP? Is it a meme or are they really an important and difficult to understand concept?
Why does this come up so often when people talk about Java?
Because beginners are confronted with the IO Monad if they want to write a Hello world program.
Monad is a typeclass that any datatype can implement. Monads have a then or flatmap like function that takes a Monad and a function that operates on the contents of the monad but also returns another monad of the same type which is then combined according to the implementation details of the specific monad that implements the monad typeclass.