Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
Uses initialValue
as the initial value,
then iterates through the elements and updates the value with
each element using the combine
function, as if by:
var value = initialValue;
for (E element in this) {
value = combine(value, element);
}
return value;
Example of calculating the sum of an iterable:
iterable.fold(0, (prev, element) => prev + element);
Source
dynamic/*=T*/ fold/*<T>*/(var/*=T*/ initialValue,
dynamic/*=T*/ combine(var/*=T*/ previousValue, E element)) {
var value = initialValue;
int length = this.length;
for (int i = 0; i < length; i++) {
value = combine(value, this[i]);
if (length != this.length) {
throw new ConcurrentModificationError(this);
}
}
return value;
}