Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Згортка / Вправи / Найдовший рядок
Розв’язання: Найдовший рядок
Ось одне з можливих розв’язань задачі.
Код
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.