scanLeft<T, B> function
- B initial
Scans a list from the left, producing a new list with intermediate results.
Example:
final list = ImmutableList<int>([1, 2, 3]);
final scanResult = scanLeft<int, int>(0)((acc, item) => acc + item)(list);
print(scanResult.items); // Outputs: (0, 1, 3, 6)
Implementation
ImmutableList<B> Function(ImmutableList<T>) Function(B Function(B, T) combine)
scanLeft<T, B>(B initial) {
return (B Function(B, T) combine) {
return (ImmutableList<T> list) {
List<B> results = [initial];
B accumulator = initial;
for (T item in list.items) {
accumulator = combine(accumulator, item);
results.add(accumulator);
}
return ImmutableList(results);
};
};
}