$numbers = collect([1, 2, 3, 4, 5, 6]);
// Розмір 3, крок 1
$windows = $numbers->sliding(3);
// [[1,2,3], [2,3,4], [3,4,5], [4,5,6]]
// Розмір 3, крок 2
$windows = $numbers->sliding(3, 2);
// [[1,2,3], [3,4,5]]
// Ковзне середнє
$values = collect([10, 20, 30, 40, 50]);
$movingAvg = $values->sliding(3)
->map(fn($window) => $window->avg());
// [20, 30, 40]
// Аналіз трендів
$prices = collect([100, 105, 103, 110, 115, 112]);
$trends = $prices->sliding(3)
->map(fn($w) => [
'start' => $w->first(),
'end' => $w->last(),
'trend' => $w->last() > $w->first() ? 'up' : 'down',
]);
// Порівняння сусідніх значень
$changes = $logs->sliding(2)->map(fn($pair) =>
$pair->last()->value - $pair->first()->value
);
// Пошук послідовностей
$data = collect([1, 2, 3, 5, 6, 7]);
$seq = $data->sliding(2)
->filter(fn($p) => $p->last() - $p->first() === 1);