Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Funkcionālā programmēšana / Samazināšana
Samazināšanas metaoperators
Ielieciet jebkuru infiksu operatoru kvadrātiekavās, un tas kļūst par redukciju: tas tiek iesprausts starp katriem diviem saraksta elementiem, savelkot sarakstu vienā vērtībā.
say [+] 1, 2, 3, 4, 5; # 15
say [*] 1, 2, 3, 4, 5; # 120[+] saskaita sarakstu, it kā jūs būtu uzrakstījuši
1 + 2 + 3 + 4 + 5; [*] to sareizina. Tas pats
darbojas ar jebkuru infiksu operatoru:
say [max] 4, 9, 2, 7; # 9
say [min] 4, 9, 2, 7; # 2
say [~] 'a', 'b', 'c'; # abc[max] reducē ar operatoru max, atrodot
lielāko elementu, un [~] reducē ar virkņu savienošanas
operatoru ~, salīmējot gabalus kopā.
Redukcijas metaoperators darbojas ar jebkuru sarakstu, arī ar diapazonu:
say [+] 1..100; # 5050Tā ir viena no kompaktākajām un izteiksmīgākajām Raku iespējām: vesela cikla vērtā uzkrāšana vienā iekavu pārī.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← Samazināšana | Viktorīna — Samazināšanas metaoperators →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.