Курс по 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.

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

Списък със запетаи   |   Потоци от данни