fold
Accumulates value starting with initial value and applying operation from left to right to current accumulator value and each element.
Returns the specified initial value if the sequence is empty.
Parameters
function that takes current accumulator value and an element, and calculates the next accumulator value.
The operation is terminal.