Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Свиване
Метаоператорът за свиване
Обвийте кой да е инфиксен оператор в квадратни скоби и той се превръща в свиване: вмъква се между всеки елемент на списъка и свежда списъка до една стойност.
say [+] 1, 2, 3, 4, 5; # 15
say [*] 1, 2, 3, 4, 5; # 120[+] сумира списъка, все едно сте написали
1 + 2 + 3 + 4 + 5; [*] го умножава. Същото
работи с всеки инфиксен оператор:
say [max] 4, 9, 2, 7; # 9
say [min] 4, 9, 2, 7; # 2
say [~] 'a', 'b', 'c'; # abc[max] свива с оператора max, за да намери
най-големия елемент, а [~] свива с оператора за слепване на
низове ~, за да съедини парчетата.
Метаоператорът за свиване работи с всеки списък, включително с диапазон:
say [+] 1..100; # 5050Той е една от най-сбитите и изразителни възможности на Raku: натрупване за цял цикъл — в чифт скоби.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Свиване | Тест — Метаоператорът за свиване →
💪 Или преминете направо към упражненията в този
раздел.