In this chapter, we've taken a closer look at achieving functional programming with Kotlin. We've discussed some of the favorable characteristics of functional programs and why we might want to write functional code with Kotlin. Then, we explored how higher-order functions enable us to write standalone functions that can be used and composed to express complex data flows. We then examined how the Kotlin standard library provides a great deal of functionality for these data flows in the form of flexible, predefined functions. And finally, we reviewed Arrow, the functional programming library, and its uses in writing highly functional code with Kotlin.
In the next chapter, we'll start to explore how to write Android apps using Kotlin.