Chapitre 10. Théorie des ensembles en GEL
Précédent |  | Suivant

# Chapitre 10. Théorie des ensembles en GEL

Genius possède des fonctionnalités intégrées basiques concernant la théorie des ensembles. Actuellement un ensemble est juste un vecteur (ou une matrice). Chaque objet distinct est traité comme un élément différent.

## Utilisation des ensembles

Tout comme les vecteurs, les objets dans les ensembles peuvent comprendre des nombres, des chaînes de caractères, `null`, des matrices et des vecteurs. Il est prévu dans le futur d'avoir un type dédié pour les ensembles plutôt que d'utiliser des vecteurs. Notez que les nombres flottants sont différents des entiers, même s'ils semblent être les mêmes. Cela signifie que Genius traite `0` et `0.0` comme deux éléments différents. La constante `null` est traitée comme un ensemble vide.

Pour construire un ensemble à partir d'un vecteur, utilisez la fonction `MakeSet`. Actuellement, cela renvoie juste un nouveau vecteur où chaque élément est unique.

    genius> MakeSet([1,2,2,3])
    = [1, 2, 3]

De manière similaire, il existe des fonctions `Union`, `Intersection`, `SetMinus` dont le but est assez intuitif. Par exemple :

    genius> Union([1,2,3], [1,2,4])
    = [1, 2, 4, 3]

Notez qu'aucun ordre n'est garanti pour les valeurs renvoyées. Si vous souhaitez trier le vecteur, vous devez utiliser la fonction `SortVector`.

Pour tester l'appartenance, il existe les fonctions `IsIn` et `IsSubset` qui renvoient une valeur booléenne. Par exemple,

    genius> IsIn (1, [0,1,2])
    = true

La syntaxe `IsIn(x,X)` est bien sûr équivalente à `IsSubset([x],X)`. Notez que puisque l'ensemble vide est un sous-ensemble de tous les ensembles, `IsSubset(null,X)` est toujours vrai.

Précédent |  | Suivant
Chapitre 9. Polynômes en GEL | Sommaire | Chapitre 11. Liste des fonctions GEL