Functors

A functor is one of those terms that comes from category theory in mathematics and causes a lot of pain to developers who come into functional programming and have less of a mathematical background. It is a requirement for monads, and here we will try to explain it in a way that will be easy to understand.

What is a functor? In the preceding section, we looked at monoids as a way to abstract some computation and then used them in different ways for optimization or to create more complex computations. Even though some people might not agree with the correctness of this approach, let's look at functors from the same point of view—something that will abstract some specific computations.

In Scala, a functor is a class that has a map ...

Get Scala Design Patterns - 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.