fold
Description:
Standard aggregation function.
It takes a function, seed and first element, returns the new seed and progress to next element when the operation repeats.
Operation moves the iterator to last element in iteration. If iterator points at some element it will be included in iteration.