Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Згортка / Вправи / Найдовший рядок

Розв’язання: Найдовший рядок

Ось одне з можливих розв’язань задачі.

Код

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.

Навігація курсом

Найдовший рядок   |   Список через кому