Chapter 6. Recursions and Reductions
In previous chapters, we've looked at several related kinds of processing designs; some of them are as follows:
- Mapping and filtering that create collections from collections
- Reductions that create a scalar value from a collection
The distinction is exemplified by functions such as map()
and filter()
that accomplish the first kind of collection processing. There are several specialized reduction functions, which include min()
, max()
, len(),
and sum()
. There's a general-purpose reduction function, also, functools.reduce()
.
We'll also consider a collections.Counter()
function as a kind of reduction operator. It doesn't produce a single scalar value per se, but it does create a new organization of the data that eliminates some of the original structure. At its heart, it's a kind of count-group-by operation that has more in common with a counting reduction than with a mapping.
In this chapter, we'll look at reduction functions...