An overview of function varieties
We need to distinguish between two broad species of functions, as follows:
- Scalar functions 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 work with iterable collections.
We can further subdivide the collection functions into three subspecies:
- Reduction: This uses a function that is used to fold values in the collection together, resulting in a single final value. We can call this an aggregate function, as it produces a single aggregate value for an input collection. 
- Mapping: This applies a function to all items of a collection; the result is a collection of the same size. 
- Filter: This applies a function to all items of a collection that rejects some items and passes others. The result is a subset of the input. A filter might do nothing, which means that the output matches the input; this is an improper subset, but it still fits... 
 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
        