Thinking in Functional programming
Confusion: You should be careful you're looking for something that doesn't exist. That keeps you wondering why you don't find it forever. Perhaps you already have the hang of it, but the purists are getting you down, making you think you don't get it. In practice, there is no such thing as purely functional code, just like there is no such thing as purely object oriented code. If you succeed at avoiding state/mutability and side effects and end up with (less) code that you think is easier to understand, then you are simply doing a good job.