Raku kurss / Padziļināti / Operatori / Metaoperatori

Zip metaoperatori

Zip metaoperators Z paņem divus (vai vairākus) sarakstus un sapāro to elementus pēc pozīcijas:

say (1, 2, 3) Z (4, 5, 6); # ((1 4) (2 5) (3 6))

Rezultāts ir grupu saraksts: pirmie elementi no katra saraksta kopā, tad otrie no katra un tā tālāk.

Vēl interesantāk — Z var apvienot ar operatoru, lai darbotos ar katru pāri. Piemēram, Z+ saskaita elementus pa pozīcijām:

say (1, 2, 3) Z+ (10, 20, 30); # (11 22 33)

Šis ir zip metaoperators, kas ietver + operatoru: tas aprēķina 1 + 10, 2 + 20 un 3 + 30. Tāpat Z* sareizina atbilstošos elementus:

say (1, 2, 3) Z* (10, 20, 30); # (10 40 90)

Un Z~ savieno atbilstošās virknes:

say <a b c> Z~ <1 2 3>; # (a1 b2 c3)

Kursa navigācija

Viktorīna — Reducēšana   |   Krustojuma, hiper un noliedzošie


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.