Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Свиване / Exercises / Най-дългият низ
Решение: Най-дългият низ
Ето едно възможно решение на задачата.
Код
my @animals = 'cat', 'elephant', 'dog', 'fox';
say @animals.reduce(-> $a, $b { $b.chars > $a.chars ?? $b !! $a });🦋 Намерете програмата във файла longest-string.raku.
Изход
elephantКоментари
Блокът запазва по-дългия от двата си аргумента:
$aе най-дългият низ, видян дотук,$bе следващият, а тернарният оператор връща онзи с повече знаци.reduceноси този победител нататък като$aпри следващото извикване, така че след обхождането на целия списък натрупаната стойност е най-дългият низ от всички —elephant.