Functional thinking - Neal Ford

Functional programming is more a mindset than a particular set of tools or languages. In this first installment, I started covering some topics in functional programming, ranging from simple design decisions to some ambitious problem rethinking. I rewrote a simple Java class to make it more functional, then began delving into some topics that set functional programming apart from using traditional imperative languages.

Two important, long-ranging concepts first appeared here. First, focus on results, not steps. Functional programming tries to present problems differently because you have different building blocks that foster solutions. The second trend I'll show throughout this series is the offloading of mundane details to programming languages and runtimes, allowing us to focus on the unique aspects of our programming problems. In the next installment, I continue looking at general aspects of functional programming and how it applies to software development today.