Corso di Raku / Avanzato / Altro sui tipi predefiniti
Set, bag e mix
Oltre agli array e agli hash, Raku offre alcuni contenitori
specializzati per collezioni di valori. Il più semplice è il
Set — una collezione non ordinata di valori
distinti, dove ogni valore è membro oppure no, e i duplicati
vengono ignorati.
Si crea un set con la routine set. I valori ripetuti
vengono ridotti a uno solo:
my $s = set(1, 2, 3, 2, 1);
say $s.elems; # 3Anche se sono stati passati cinque numeri, il set contiene solo tre
elementi, perché 1 e 2 compaiono più di una
volta.
La domanda principale che si pone a un set è se un valore gli
appartiene. L’operatore ∈ (che si legge “è un elemento di”)
restituisce un booleano:
say 2 ∈ set(1, 2, 3); # True
say 9 ∈ set(1, 2, 3); # FalseSe si preferisce restare con il semplice ASCII, lo stesso operatore
può essere scritto come (elem):
say 2 (elem) set(1, 2, 3); # TrueGli argomenti seguenti mostrano come combinare i set e introducono i bag e i mix, che sono parenti stretti del set.
Argomenti di questa sezione
Pratica
Risolvi 1 quiz sul contenuto di questa sezione.
Esercizi
Questa sezione contiene 3 esercizi. Guarda tutti gli argomenti di questa sezione prima di iniziare gli esercizi.