Erlang the language has me tearing my hair out on occasion. That's not Erlangs fault, it's clearly mine, I grew up with 'BASIC' and moved on Assembler and from there to 'C' and a whole bunch of other imperative languages besides so functional languages are always harder for me to learn.
That said I'm making good progress and Freds book was instrumental in that.
No, seriously: Erlang shares some features with Prolog and learning Prolog lets you learn those features in isolation, without unnecessary distractions (like, say, processes and sending messages, or gen_server/gen_fsm/supervisors or rebar, applications, releases...). For example "=" not being an assignment, and pattern matching in general, starts making a lot of sense. Looping via tail-recursion (only), single assignment variables, and even some of Erlang syntax stops seeming intimidating quickly.
I think the best metaphor for this would be learning to swim via jumping into a deep water, nearly drowning but learning the most important parts (like don't try to breathe underwater) and then going to shallow water to leisurely practice swimming there. It's certainly not for everyone, but for me it sped up the Erlang learning process by many weeks, if not months. (And also, I learned a bit of Prolog along the way.)