Chapter 6. Map, Filter, and Reduce

In previous chapters, we briefly touched on the map function as an example of built-in higher-order functions. In this chapter, we will explore this topic further and get familiar with map, flatMap, filter, and reduce functions in Swift with examples. We will also get familiar with the category theory concepts such as Monad, Functor, and Applicative Functor.

This chapter will cover the following topics with coding examples:

  • Functor
  • Applicative Functor
  • Monad
  • Map
  • FlatMap and flatten
  • Filter
  • Reduce
  • Apply
  • Join
  • Chaining higher-order functions
  • Zip
  • 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-in into Swift, let's explore the theoretical background of these concepts.

Functor

The name of Functor comes from the category theory. In the category theory, a Functor contains morphisms such as a map function, which transforms the Functor. We can think about a Functor as a functional design pattern.

Knowing the category theory is great but we do not have to, so simply put, a Functor is a structure that we can map over. In other words, a Functor is any type that implements the map function. Examples of Functors are Dictionary, Array, Optional, and Closure types. Whenever we talk about Functors, the first thing that comes to our mind is that we can call the map function over them and transform them.

Unlike its name, the concept is very simple. We will talk about the map function in more detail in the upcoming sections and explore the usage of Functors.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset