Functional Python Programming
上QQ阅读APP看书,第一时间看更新

An overview of function varieties

We need to distinguish between two broad species of functions, as follows:

  • Scalar functions: They apply to individual values and compute an individual result. Functions such as abs(), pow(), and the entire math module are examples of scalar functions.
  • Collection functions: They work with iterable collections.

We can further subdivide the collection functions into three subspecies:

  • Reduction: This uses a function to fold values in the collection together, resulting in a single final value. For example, if we fold (+) operations into a sequence of integers, this will compute the sum. This can be also be called an aggregate function, as it produces a single aggregate value for an input collection.
  • Mapping: This applies a scalar function to each individual item of a collection; the result is a collection of the same size.
  • Filter: This applies a scalar function to all items of a collection to reject some items and pass others. The result is a subset of the input. 

We'll use this conceptual framework to characterize ways in which we use the built-in collection functions.