scanRight<T, B> function
- B initial
Scans a list from the right, producing a new list with intermediate results.
Example:
final list = ImmutableList<int>([1, 2, 3]);
final scanResult = scanRight<int, int>(0)((item, acc) => item + acc)(list);
print(scanResult.items); // Outputs: (6, 5, 3, 0)
Implementation
ImmutableList<B> Function(ImmutableList<T>) Function(B Function(B, T) combine)
scanRight<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.reversed) {
accumulator = combine(accumulator, item);
results.add(accumulator);
}
return ImmutableList(results.reversed.toList());
};
};
}