Курс 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)

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

Тест — Редукція   |   Перехресні, гіпер- та заперечні


💪 Або перейдіть одразу до вправ цього розділу.