I know there must be lots of resources, but finding a good one can be difficult when you are new to a field.
I know there must be lots of resources, but finding a good one can be difficult when you are new to a field.
It's (obviously) about the Elixir programming language, but was a pretty good introduction to functional programming for me, as well. As was working through problems on https://exercism.io/ in Elixir and Clojure.
I'd recommend this book as it teaches how to think about solving things by writing recursive functions (Elixir/erlang has tail call optimization), pattern matching, etc. No need to learn the OTP concepts (genserver, supervisors, etc).
So, perhaps in learning that, you’re learning a more perfect OO.
Another helpful one is Functional Javascript. It showed me a new, better, way to write my JS code.
I found it can be easier on your mind when you pick it up almost like vim. First you learn how to move around with hjkl (perhaps a functional equivalent is using .map() and .filter() instead of for loops), then you navigate by lexical concepts with w, e, $, %, etc (maybe using .zip()), then build macros with @ (currying), etc. Each step you learn and use regularly helps when stretching your brain to pick up more. You definitely don't need to rewrite everything in a functional way to take advantage of it.