- Learning Functional Programming in Go
- Lex Sheehan
- 140字
- 2021-07-02 23:13:32
Various intermediate and terminal functions
Look at the various intermediate and terminal functions in the following functor diagram. They are all functors. When a function, for example, Map, is provided with a set of values as input, it will apply a transformation on the elements and produce output that will be a different set of values.
In functional programming, given the same input, a given function will always return the same result set.
![](https://epubservercos.yuewen.com/6176FA/19470400908922906/epubprivate/OEBPS/Images/Chapter_200.jpg?sign=1739354244-RJValfsut2rCklBmuGSM7apRFm7VVtwq-0-9ca506ae7e8b9174d3b79707460f7756)
In the first row of preceding functors, Map and Sort, take a collection, transform it in some way, and return a collection of equal size.
In the second row of functors, Filter and GroupBy, take a collection and transform it into another collection of smaller size.
In the third row, Reduce takes a collection, performs computations over its elements, and returns a single result value.