Kapitola 10. Teorie množin v jazyce GEL

Obsah

Používání množin

Genius má vestavěnou základní funkcionalitu pro teorii množin. V současnosti je množina prostě jen vektor (nebo matice). S každým jednotlivým objektem je zacházeno jako s odlišným prvkem.

Používání množin

Podobně jako u vektorů, i v množinách mohou být objekty čísla, řetězce, null, matice a vektory. Do budoucna je pro množiny plánován samostatný typ namísto vektorů. Upozorňujeme, že desetinná čísla (float) se odlišují od celých čísel (integer), i když vypadají stejně. Takže Genius bude s 0 a 0.0 zacházet jako s různými prvky. null je považováno za prázdnou množinu.

K sestavení množiny vektorů použijte funkci MakeSet. V současnosti vrátí akorát nový vektor, ve kterém je každý prvek jedinečný.

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

Podobně jsou k dispozici funkce Union, Intersection, SetMinus, které vrací sjednocení, průnik a rozdíl množin. Například:

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

Upozorňujeme, že u vracených hodnot není zaručeno žádné pořadí. Pokud chcete vektor seřadit, měli byste použít funkci SortVector.

Pro test, zda je prvkem množiny, slouží funkce IsIn a IsSubset, které vrací pravdivostní hodnotu. Například:

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

Vstup IsIn(x,X) je samozřejmě shodný s IsSubset([x],X). Uvědomte si, že vzhledem k tomu, že prázdná množina je podmnožinou kterékoliv množiny, volání IsSubset(null,X) vrátí vždy true (pravda).