Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione concorrente / Junction
Costruire junction
Il modo più semplice di costruire una junction è con gli operatori
giuntivi. L’operatore | crea una junction any:
my $j = 1 | 2 | 3;
say $j; # any(1, 2, 3)Il valore $j sta per «1 oppure 2 oppure 3». Ci sono
quattro generi di junction, ciascuno con un operatore e una funzione
corrispondente:
any( … )oppurea | b— vero se corrisponde un valore qualunqueall( … )oppurea & b— vero se corrispondono tutti i valorione( … )oppurea ^ b— vero se corrisponde esattamente un valorenone( … )— vero se nessun valore corrisponde (è l’unico genere senza forma a operatore: usa la funzione)
Le forme a funzione sono comode con un elenco:
say all(3, 7, 2); # all(3, 7, 2)
say none(1, 2, 3); # none(1, 2, 3)Una junction è utilissima in un confronto. Chiedere se un numero è uguale a una junction any lo mette alla prova contro ogni valore in una volta sola:
say so 2 == any(1, 2, 3); # True
say so 5 == any(1, 2, 3); # FalseLa forma a operatore si legge altrettanto naturalmente —
1 | 2 | 3 è esattamente la stessa junction
any:
say so 2 == 1 | 2 | 3; # True
say so 5 == 1 | 2 | 3; # FalseIl so trasforma il risultato giuntivo in un booleano
semplice. L’argomento successivo guarda che cosa succede dietro le
quinte quando lo fai.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Junction | Quiz — Junction →
💪 Oppure vai direttamente agli esercizi di questa
sezione.