FP is a programming style that is declarative. It is more readable and usually requires much less code than our imperative or object-oriented implementation options.
In this chapter, we implemented the Map, Filter, and Reduce high-order functions. We studied closures and looked at how currying enables function composition.
Our Reduce implementation demonstrated how to use Goroutines and a Go channel to perform lazy evaluation. We managed its concurrency using a WaitGroup variable and some common sense.
In the next chapter, we'll consider the API software design. We'll look at how to build composable systems using interfaces and closures to enforce the single responsibility principle and
 the open/close principle.