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