November 2017
Intermediate to advanced
670 pages
17h 35m
English
Now, let's return to main.go to look at a few more HOFs in action.
We apply our ByMake filter and a new type of reducer. This reducer, Reducer2, will return a slice of CarTypes rather than JSON:
PrintCars2("Reduce - Lexus", cars.Filter(ByMake("Lexus")). Reduce2(CarTypeReducer(cars), []CarType{}))
Here's the output of this:
Reduce - Lexus-----------------------car: {Lexus IS250}car: {Lexus SC 430}
The following is another example that shows how easy chaining, also known as function composition, is:
PrintCars("ByModel - Accord up/downgraded", cars.Filter(ByModel("Accord")). Map(Upgrade()). Map(Downgrade()))
Here's the output of this:
ByModel - Accord up/downgraded-----------------------car: Honda Accord car: Honda ...