Implementing higher-order functions map and fold
Throughout the preceding recipes in this book, we have used the general purpose algorithms std::transform()
and std::accumulate()
in several examples, such as implementing string utilities to create uppercase or lowercase copies of a string or summing the values of a range. These are basically implementations of higher-order functions, map
and fold
. A higher-order function is a function that takes one or more other functions as arguments and applies them to a range (a list, vector, map, tree, and so on), producing either a new range or a value. In this recipe, we will see how to implement map
and fold
functions to work with C++ standard containers.
Getting ready
Map is a higher-order function that applies a function to the elements of a range and returns a new range in the same order.
Fold is a higher-order function that applies a combining function to the elements of the range producing a single result. Since the order of the processing can...