Whenever I try to learn more about functional programming I run into a mental road block and think, “But it is just so hard! It will be faster and easier if I just keep coding this way - the old way that I know.”

Well did you see what SpaceX did recently? They landed the first stage of their rocket. It was kind of a big deal. Partly because it was really, really difficult. Some people even thought it was impossible. All the while, SpaceX kept trying despite some pretty spectacular ‘RUD’s (rapid unscheduled disassemblies).

But not once did I see SpaceX CEO, Elon Musk, moping around, “Oh, but it is just all so difficult. Why are we even trying to land a rocket at all?”

Nope. Not Elon - he is out there reverse parking his Falcon 9 rocket like a boss. Why?

If one can figure out how to effectively reuse rockets just like airplanes, the cost of access to space will be reduced by as much as a factor of a hundred. – Elon Musk

REUSABILITY. That is why I’m learning more about functional programming. To make more of my code reusable. To make it easier to adapt software to new situations in a more reliable way. Even if it feels difficult - almost as difficult as landing a rocket.