Курс 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 тест за змістом цієї теми.
Навігація курсом
← Згортка | Тест — Метаоператор згортки →
💪 Або перейдіть одразу до вправ цього розділу.