I have only recently started delving into functional programming seriously (for a little over past half year), and I see people talk about things like monads, and applicatives, and arrows, and ... (you get the idea).<p>I can code an work quite well in functional programming languages like Haskell, Scala, OCaml etc, and have been able to handle scenarios where such ideas are used, but it has been in an ad-hoc-based-learning way.<p>I'm basically looking for a good place to start reading all these more "advanced" topics/concepts in Functional Programming, so as to get a more serious grasp on them.<p>I would be grateful for any books/videos/talks/etc. which might have the same.
Write.<p>All those concepts don't matter if you don't have where to apply them, and if
you do have use for them, you'll learn them soon enough. It was quite visible
with a nice paradigm of aspect-oriented programming dozen years ago
(from imperative programming field); it looked like a good idea, but there was
nowhere to put that into use sensibly, and AOP eventually died.
The best way to learn monads is to ignore the IO one for now, and learn what >>= and return does for each "pure" one individually. E.g. Maybe, List, Either etc. With enough examples understand you will understand the pattern. At various points you may want to check you understand what the type system is doing in the implementation.