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

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

Тест — Редукция   |   Кръстосани, хипер и отрицателни


💪 Или преминете направо към упражненията в този раздел.