
Ask HN: Where to learn “advanced” concepts in Functional Programming - jaybosamiya
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&#x27;m basically looking for a good place to start reading all these more &quot;advanced&quot; topics&#x2F;concepts in Functional Programming, so as to get a more serious grasp on them.<p>I would be grateful for any books&#x2F;videos&#x2F;talks&#x2F;etc. which might have the same.
======
dozzie
Write.

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.

~~~
bbcbasic
I'm not so sure AOP is dead. It solves a real pain point, with the canonical
method of implementing this in C# being attributes.

~~~
dozzie
I'm not a C# programmer, but attributes seem more like decorators than AOP.

~~~
bbcbasic
It usually requires some reflection or precompiled step.

------
bbcbasic
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.

------
sotojuan
[http://haskellbook.com/](http://haskellbook.com/)

