Part 2

First-class abstractions

Distinguishing actions, calculations, and data allowed us to learn many new skills. That distinction will continue to serve us. But we must learn a new skill to enter the next realm, where new skills await. The skill we need is the idea of first-class values, especially first-class functions. Once equipped with that new skill, we can learn a functional way to iterate. We can build complex calculations using chains of operations. We can discover a way to operate on deeply nested data. And we’ll learn to control the ordering and repetition of actions to eliminate timing bugs. We’ll finish the journey with two architectures that let us structure our services. These skills will be available once we learn about first-class values.