Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Funkcionālā programmēšana / Iteratori / Exercises / Summa ar pull-one

Risinājums: Summa ar pull-one

Šeit ir iespējams risinājums uzdevumam.

Kods

my $it = (3, 7, 5).iterator;
my $sum = 0;

loop {
    my $v := $it.pull-one;
    last if $v =:= IterationEnd;
    $sum += $v;
}

say $sum;

🦋 Atrodiet programmu failā sum-with-pull-one.raku.

Izvade

15

Komentāri

  1. .iterator dod uz vilkšanu balstītu skatu uz sarakstu, un katrs pull-one atgriež nākamo skaitli.

  2. Vērtība tiek saistīta ar :=, nevis piešķirta, lai $v =:= IterationEnd beigas pamanītu pareizi — ar piešķīrumu = tiktu salīdzināts konteiners, nevis vērtība. Cikls saskaita 3, 7 un 5, tad sastop IterationEnd un apstājas, atstājot 15.

Kursa navigācija

Summa ar pull-one   |   Slinkas un bezgalīgas virknes