In my view it simply doesn’t work that way
- the core of procedural/imperative programming embraces mutability and iteration
- the core of functional programming embraces immutability and recursion
So the constraints are quite different which means that a different way of doing things is required - so the mindset for the functional way needs to be built from the ground up - typically starting with tuples, lists, how to operate on them and how to compose them. Ultimately I suspect that is what Learn Functional Programming with Elixir (Pragprog) is for.
Every once in a while there seems to be an equivalency like that the strategy pattern is the OO equivalent of higher order functions - but those are few and far between.
Scott Wlaschin’s Functional Programming Design Patterns is a great talk the should be regularly revisited.