4.1 An overview of function varieties
We need to distinguish between two broad species of functions, as follows:
- Scalar functions: These apply to individual values and compute an individual result. Functions such as - abs(),- pow(), and the entire- mathmodule are examples of scalar functions.
- Collection functions: These work with iterable collections. 
We can further subdivide these 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. Functions like - sum()and- len()are examples of reducing a collection to a single value.
- Mapping: This applies a scalar function to each individual item of a collection; the result is a collection of the same size. The built-in - map()function does this...
 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                