Chapter 10. Mängdlära i GEL
Prev |  | Next

# Chapter 10. Mängdlära i GEL

Genius har viss grundläggande mängdteoretisk funktionalitet inbyggd. För närvarande är en mängd bara en vektor (eller en matris). Varje distinkt objekt behandlas som ett eget element.

## Använda mängder

Precis som vektorer kan objekt i mängder inkludera tal, strängar, `null`, matriser och vektorer. Det planeras att i framtiden ha en enkom typ för mängder, snarare än att använda vektorer. Observera att flyttal skiljer sig åt från heltal även om de verkar vara lika. Det vill säga Genius behandlar `0` och `0.0` som två olika element. `null` behandlas som en tom mängd.

För att skapa en mängd från en vektor, använd funktionen `MakeSet`. För närvarande kommer den bara att returnera en ny vektor där varje element är unikt.

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

På liknande sätt finns funktionerna `Union`, `Intersection` och `SetMinus`, som är ganska självförklarande. Till exempel:

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

Observera att ingen ordning garanteras för returvärdena. Om du vill sortera vektorn bör du använda funktionen `SortVector`.

För att testa medlemskap finns funktionerna `IsIn` och `IsSubset` vilka returnerar ett booleskt värde. Till exempel:

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

Inmatningen `IsIn(x,X)` är ekvivalent med `IsSubset([x],X)`. Observera att eftersom den tomma mängden är en delmängd av varje mängd så är `IsSubset(null,X)` alltid true (sann).

Prev |  | Next
Chapter 9. Polynom i GEL | Home | Chapter 11. Lista över GEL-funktioner