Kapitola 10. Teorie množin v jazyce GEL
Předcházející |  | Další

# Kapitola 10. Teorie množin v jazyce GEL

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

Předcházející |  | Další
Kapitola 9. Polynomy v jazyce GEL | Domů | Kapitola 11. Seznam funkcí GEL