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