Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Свёртка / Exercises / Список через запятую
Решение: Список через запятую
Вот один из возможных вариантов решения задачи.
Код
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.