Raku kurss / Pielikums 🆕 / Darbs ar datiem / Saraksti, masīvi un jaucējtabulas / Exercises / Augošās summas
Risinājums: Augošās summas
Šeit ir iespējams risinājums uzdevumam.
Kods
my @numbers = 2, 4, 6, 8;
my $sum = 0;
my @totals = @numbers.map({ $sum += $_ });
say @totals;🦋 Atrodiet programmu failā running-totals.raku.
Izvade
[2 6 12 20]Komentāri
Bloks augošo summu
$sumglabā mainīgajā ārpusmap. Katrs izsaukums pieskaita pašreizējo elementu un atgriež jauno summu, tāpēc attēlotais saraksts ir daļsummu virkne.Raku tas ir iebūvēts. Trijstūrveida redukcija
[\+]patur katru daļsummu, tāpēc viss risinājums ir viena izteiksme:my @numbers = 2, 4, 6, 8; say [\+] @numbers; # (2 6 12 20)
Tā atgriež
Seq, tāpēc tās attēlojumā ir apaļās iekavas —(2 6 12 20)—, nevis masīva[2 6 12 20], bet skaitļi ir tie paši.