Курс Raku / Додаток 🆕 / Робота з даними / Списки, масиви та хеші / Вправи / Наростаючі підсумки
Розв’язання: Наростаючі підсумки
Ось одне з можливих розв’язань задачі.
Код
my @numbers = 2, 4, 6, 8;
my $sum = 0;
my @totals = @numbers.map({ $sum += $_ });
say @totals;🦋 Знайдіть програму у файлі running-totals.raku.
Вивід
[2 6 12 20]Коментарі
Блок тримає наростаючу
$sumу змінній поза map. Кожен виклик додає поточний елемент і повертає нову суму, тож відображений список є послідовністю часткових сум.У Raku це є вбудованим. Трикутна згортка
[\+]зберігає кожну часткову суму, тож усе розв’язання є одним виразом:my @numbers = 2, 4, 6, 8; say [\+] @numbers; # (2 6 12 20)
Вона повертає
Seq, тож її загальний вигляд використовує круглі дужки —(2 6 12 20), — а не масивні[2 6 12 20], але числа ті самі.