Chapter 10. Θεωρία συνόλων στη GEL

Table of Contents

Χρήση συνόλων

Η Genius έχει κάποια βασική θεωρητική λειτουργικότητα συνόλων ενσωματωμένη. Προς το παρόν ένα σύνολο είναι απλά ένα διάνυσμα (ή πίνακας). Κάθε ξεχωριστό αντικείμενο αντιμετωπίζεται ως διαφορετικό στοιχείο.

Χρήση συνόλων

Ακριβώς όπως τα διανύσματα, τα αντικείμενα στα σύνολα μπορούν να περιλαμβάνουν αριθμούς, συμβολοσειρές null, πίνακες και διανύσματα. Σχεδιάζεται στο μέλλον να υπάρχει ένας αποκλειστικός τύπος για σύνολα, αντί να χρησιμοποιούνται διανύσματα. Σημειώστε ότι οι αριθμοί κινητής υποδιαστολής είναι διακριτοί από τους ακέραιους, ακόμα κι αν εμφανίζονται το ίδιο. Δηλαδή η Genius θα θεωρήσει τις 0 και 0.0 ως δύο διαφορετικά στοιχεία. Η null αντιμετωπίζεται ως ένα κενό σύνολο.

To build a set out of a vector, use the MakeSet function. Currently, it will just return a new vector where every element is unique.

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

Similarly there are functions Union, Intersection, SetMinus, which are rather self explanatory. For example:

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

Note that no order is guaranteed for the return values. If you wish to sort the vector you should use the SortVector function.

For testing membership, there are functions IsIn and IsSubset, which return a boolean value. For example:

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

The input IsIn(x,X) is equivalent to IsSubset([x],X). Note that since the empty set is a subset of every set, IsSubset(null,X) is always true.