Курс языка программирования 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.
Навигация по курсу
← Сумма с помощью pull-one | Ленивые и бесконечные последовательности →