Курс по 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.

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

Най-дългият низ   |   Списък със запетаи