The most important idea in modern functional programming is this:
It’s all about data.
Functional programmers put data first. We start by thinking about what kinds of data we have in a problem domain, and what kinds of transformations we want to perform on the data. Once we have a handle on this, we start building up the data structures and the code to do the transformations.
Functional programming is not all about coding with pure functions. What modern functional languages are about is developing ever-better tools to help in this data-first style of programming. It’s about providing easier ways to specify powerful data types, to manipulate them at a high level, to break them apart and recombine them, and to do all ...