Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Итератори / Exercises / Сума чрез pull-one
Решение: Сума чрез pull-one
Ето едно възможно решение на задачата.
Код
my $it = (3, 7, 5).iterator;
my $sum = 0;
loop {
my $v := $it.pull-one;
last if $v =:= IterationEnd;
$sum += $v;
}
say $sum;🦋 Намерете програмата във файла sum-with-pull-one.raku.
Изход
15Коментари
.iteratorдава изтеглящия поглед към списъка, а всякоpull-oneвръща следващото число.Стойността се свързва с
:=, а не се присвоява, за да може$v =:= IterationEndда разпознае края правилно — присвояване с=би сравнявало контейнера. Цикълът добавя3,7и5, после срещаIterationEndи спира, оставяйки15.