Курс языка программирования Raku / Продвинутый уровень / Операторы / Метаоператоры
Метаоператоры zip
Метаоператор zip Z берёт два (или больше) списка и
объединяет их элементы попарно по позициям:
say (1, 2, 3) Z (4, 5, 6); # ((1 4) (2 5) (3 6))Результат — список групп: первые элементы всех списков вместе, затем вторые и так далее.
Ещё интереснее то, что Z можно совместить с оператором,
чтобы подействовать на каждую пару. Например, Z+ складывает
элементы попозиционно:
say (1, 2, 3) Z+ (10, 20, 30); # (11 22 33)Это метаоператор zip, обёрнутый вокруг оператора +: он
вычисляет 1 + 10, 2 + 20 и
3 + 30. Точно так же Z* перемножает
соответствующие элементы:
say (1, 2, 3) Z* (10, 20, 30); # (10 40 90)А Z~ соединяет соответствующие строки:
say <a b c> Z~ <1 2 3>; # (a1 b2 c3)Навигация по курсу
← Тест — Свёртка | Перекрёстные, гипер- и отрицающие →
💪 Или перейдите сразу к упражнениям этого
раздела.