windowed method
Returns a sliding window of size over the list.
[1,2,3,4].windowed(2) // [[1,2],[2,3],[3,4]]
Implementation
List<List<T>> windowed(int size, {int step = 1}) {
assert(size > 0 && step > 0);
final result = <List<T>>[];
for (var i = 0; i + size <= length; i += step) {
result.add(sublist(i, i + size));
}
return result;
}