Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Згортка / Вправи / Список через кому

Розв’язання: Список через кому

Ось одне з можливих розв’язань задачі.

Код

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.

Навігація курсом

Список через кому   |   Конвеєри даних