In previous chapters, we briefly touched on the map
function as an example of a built-in higher-order function. In this chapter, we will explore this topic further and get familiar with the map
, flatMap
, filter
, and reduce
functions in Swift, together with examples. We will also get familiar with the category/type theory concepts such as higher-kinded types (Monad, Functor, and Applicative Functor).
This chapter will cover the following topics with coding examples:
- Functors
- Applicative Functors
- Monads
- The map function
- The flatMap method
- The filter function
- The reduce function
- The apply function
- The join function
- Chaining higher-order functions
- The zip function
- Practical examples
Collections are used everywhere in our day-to-day development, and to be able to use collections declaratively, we need means such as map
, filter
, and reduce
. Before going through these functions that are built into Swift, let's explore the theoretical background of these concepts.