Un Set est une collection d'éléments qui présente les propriétés suivantes :
On les crée avec le constructeur Set(), en utilisant n'importe quel itérateur comme paramètre.
julia> s1 = Set(1:4)
Set{Int64} with 4 elements:
4
2
3
1
On ajoute de nouveaux éléments avec push!() (comme pour les tableaux), et on les supprime avec delete!().
julia> push!(s1, 5)
Set{Int64} with 5 elements:
5
4
2
3
1
# Duplicates are ignored
julia> push!(s1, 3)
Set{Int64} with 5 elements:
5
4
2
3
1
julia> delete!(s1, 5)
Set{Int64} with 4 elements:
4
2
3
1
julia> length(s1) # length counts entries, despite the non-sequential type
4
Comme pour plusieurs autres types de collections, on vérifie l'appartenance avec l'opérateur in ou ∈ (utilise \in puis tabulation pour obtenir le symbole).
julia> 3 ∈ s1
true
Les opérations suivantes sur des paires d'ensembles sont prises en charge (les raccourcis pour saisir le symbole de l'opérateur sont indiqués entre parenthèses).
union(A, B) ou A ∪ B (\cup) : tous les éléments de A ou de B, ou des deux.intersect(A, B) ou A ∩ B (\cap) : tous les éléments communs à A et à B.setdiff(A, B) (pas de symbole) : les éléments qui sont dans A mais pas dans B.symdiff(A, B) (pas de symbole) : les éléments qui sont dans A ou dans B, mais pas dans les deux.issubset(A, B) ou A ⊆ B (\subseteq) ou B ⊇ A (\supseteq) : true si tous les éléments de A sont aussi dans B.issetequal(A, B) (pas de symbole) : true si A et B contiennent exactement les mêmes éléments.isdisjoint(A, B) (pas de symbole) : true si A et B n'ont aucun élément en commun (l'intersection est donc vide).s1 = Set(1:4)
s2 = Set(3:6)
julia> s1 ∪ s2 # union
Set{Int64} with 6 elements:
5
4
6
2
3
1
julia> s1 ∩ s2 # intersect
Set{Int64} with 2 elements:
4
3
julia> setdiff(s1, s2)
Set{Int64} with 2 elements:
2
1
julia> symdiff(s1, s2)
Set{Int64} with 4 elements:
5
6
2
1
julia> s1 ⊇ s2 # issubset
false
Il existe aussi des versions mutantes de beaucoup d'entre elles, avec un ! ajouté au nom de la fonction.
Pour obtenir la liste complète des fonctions, consulte le manuel.