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

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.

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.