Chapter 7: Controlling the Data Flow

The previous chapter covered an important Kotlin concurrency primitive: coroutines. In this chapter, we'll discuss two other vital concurrent primitives in Kotlin: channels and flows. We'll also touch on higher-order functions for collections, as their API is very similar to that of channels and flows.

The idea of making extensive use of small, reusable, and composable functions comes directly from the functional programming paradigm, which we discussed in the previous chapter. These functions allow us to write code in a manner that describes what we want to do instead of how we want to do it.

In this chapter, we'll cover the following topics:

  • Reactive principles
  • Higher-order functions for collections ...

Get Kotlin Design Patterns and Best Practices - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.