Cursus Raku / Provectus / Operatores / Meta-operatores
Crux, hyper, et negati
Praeter reductionem et zip, Raku plures alios meta-operatores habet. Tres eorum hic cognoscendi sunt.
Cross — X
Meta-operator cross X omne elementum
unius listae cum omni elemento alterius coniungit —
productum Cartesianum:
say <a b> X <1 2>; # ((a 1) (a 2) (b 1) (b 2))Sicut zip, operatorem involvere potest ut in unoquoque pare agat.
X~ unumquodque par in filum coniungit, et X*
multiplicat:
say <a b> X~ <1 2>; # (a1 a2 b1 b2)
say (1, 2, 3) X* (10, 100); # (10 100 20 200 30 300)Ubi zip duas listas simul percurrit, cross eas omni modo possibili combinat.
Hyper — »…«
Meta-operator hyper operatorem ad unumquodque
elementum listae applicat. Operator in acutis »…«
(vel ASCII >>…<<) involvitur. Cum duabus listis
elementum per elementum operatur, sicut zip; cum uno valore ab una
parte, illum valorem per totam listam extendit:
say (1, 2, 3) »+» (10, 20, 30); # (11 22 33)
say (1, 2, 3) »*» 2; # (2 4 6)Duae sagittae non necesse est eandem partem spectent, et eorum
directio decernit quid fiat cum listae longitudine differunt — apex
ad listam spectans eam listam repeti permittit ut
alteri respondeat. In scriptura ASCII
<</>>, quattuor combinationes
sunt:
>>op<<— neutra pars extenditur; listae iam eiusdem longitudinis esse debent, aut error est;>>op>>— lista dextra repetitur ut sinistrae respondeat;<<op<<— lista sinistra repetitur ut dextrae respondeat;<<op>>— lista brevior repetitur ut longiori respondeat.
say (1, 2, 3, 4) <<+>> (10, 20); # (11 22 13 24) — 10, 20 repetitur ad 10, 20, 10, 20Forma unaria quoque est, quae methodum in omni elemento vocat.
>>.uc unumquodque filum in maiusculas convertit:
say <raku perl>>>.uc; # (RAKU PERL)Operationes hyper etiam significant opus fortasse
paralleliter fieri posse — methodum coniunctam .hyper
postea invenies, in sectione de
programmatione concurrenti.
Negatus — !
Ponens ! ante operatorem comparationis eventum eius
negat. Familiaris != (non aequalis) est exacte hic
meta-operator ad == applicatus, et idem operatur pro aliis
operatoribus Booleanis ut eq et %%:
say 3 != 4; # True
say 'a' !eq 'b'; # True — non aequales ut fila
say 5 !%% 2; # True — 5 non est divisibilis per 2Breviter, $a !op $b est tantum elegantior modus
scribendi !($a op $b).
Hoc de industria est. Dissimilis linguae deliberate minimae ut
Esperanto, quae unum regularem modum exprimendi unamquamque rem quaerit,
Raku libenter tibi plures dat — ergo negatus !eq iuxta
dedicatum operatorem ne vivit, et ambo exacte idem
significant:
say 'a' ne 'b'; # True — idem experimentum ac 'a' !eq 'b'Exercitatio
Sequuntur 1 quiz de contentis huius argumenti.
Navigatio cursus
← Zip meta-operatores | Quiz — Hyper et crux →
💪 Vel recta ad exercitationes huius
sectionis i.