Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Згортка / Вправи / Список через кому
Розв’язання: Список через кому
Ось одне з можливих розв’язань задачі.
Код
my @words = 'Raku', 'is', 'fun';
say @words.reduce(-> $a, $b { "$a, $b" });🦋 Знайдіть програму у файлі comma-separated.raku.
Вивід
Raku, is, funКоментарі
Тут блок будує значення, а не обирає одне з двох:
$a— це зібраний досі рядок,$b— наступне слово, а"$a, $b"склеює їх комою з пробілом.Перший виклик з’єднує
'Raku'та'is'уRaku, is; другий з’єднує це з'fun', даючиRaku, is, fun. Саме такого з’єднання з розділювачем метаоператор[~]сам виразити не може.У справжньому коді ви взяли б вбудований метод
join, що робить рівно це:say @words.join(', ');друкує те самеRaku, is, fun. Сенс вправи — потренуватися виражати ту саму ідею блокомreduce.