Курс языка программирования 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.