上QQ阅读APP看书,第一时间看更新
Reduce example
Here's an implementation for reducing a collection, using the alediaferia/go-collections package, to find the maximum value:
numbers := []interface{}{
1,
5,
3,
2,
}
coll := collections.NewFromSlice(numbers)
min := collections.Reduce(0, func(a, b interface{}) interface{} {
if a > b { return a } else { return b }
})
The Join function takes two different collections and combines them into a single, larger collection.
There are two basic types of functors in functional programming: intermediate functions and terminal functions. They work together to transform the incoming collection into either another collection or a single value. Any number of intermediate functions can be chained together followed by the terminal function.