Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Свёртка / Exercises / Самая длинная строка

Решение: Самая длинная строка

Вот один из возможных вариантов решения задачи.

Код

my @animals = 'cat', 'elephant', 'dog', 'fox';

say @animals.reduce(-> $a, $b { $b.chars > $a.chars ?? $b !! $a });

🦋 Исходный код можно найти в файле longest-string.raku.

Вывод

elephant

Комментарии

  1. Блок оставляет более длинный из двух своих аргументов: $a — самая длинная строка, увиденная к этому моменту, $b — очередная, а тернарный оператор возвращает ту, в которой больше символов.

  2. reduce переносит победителя дальше как $a следующего вызова, поэтому после прохода по всему списку накопленное значение оказывается самой длинной строкой из всех — elephant.

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

Самая длинная строка   |   Список через запятую