Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Свёртка / Exercises / Список через запятую

Решение: Список через запятую

Вот один из возможных вариантов решения задачи.

Код

my @words = 'Raku', 'is', 'fun';

say @words.reduce(-> $a, $b { "$a, $b" });

🦋 Исходный код можно найти в файле comma-separated.raku.

Вывод

Raku, is, fun

Комментарии

  1. Здесь блок строит значение, а не выбирает одно из двух: $a — собранная к этому моменту строка, $b — очередное слово, а "$a, $b" склеивает их через запятую с пробелом.

  2. Первый вызов соединяет 'Raku' и 'is' в Raku, is; второй присоединяет к этому 'fun' и даёт Raku, is, fun. Такое соединение с разделителем метаоператор [~] сам по себе выразить не может.

  3. В настоящем коде вы взяли бы встроенный метод join, который делает ровно это: say @words.join(', '); напечатает то же Raku, is, fun. Смысл упражнения — потренироваться выражать ту же идею блоком reduce.

Навигация по курсу

Список через запятую   |   Конвейеры данных