Swift has an important advantage over objective-c, which provides good support for functional programming, and Swift provides three high-order functions for map, filter, and reduce as support for containers.
1 map: Can be processed once for each element in an array
2 Flatmap differs from map:
(1) No nil exists in the array after Flatmap returns, and it will unpack the optional
(2) Flatmap can also open arrays of arrays (two-dimensional arrays, n-dimensional arrays) together into a new array
(3) Flatmap can also combine two different arrays into an array, the number of elements of the combined array is the product of the number of the previous two array elements
3 filer: Filter, can filter the elements in the array according to some rules
4 reduce: calculation, which can be calculated for elements of an array
Https://www.cnblogs.com/muzijie/p/6542650.html
High-order function map, FLATMAP, filter, reduce in Swift