Obsah
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.
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).