Capítulo 10. Teoría de conjuntos en GEL

Tabla de contenidos

Usar conjuntos

Genius incorpora un juego básico de funcionalidades teoréticas. En la actualidad, un conjunto es sólo un vector (o una matriz). Cada objeto distinto se trata como un elemento diferente.

Usar conjuntos

Al igual que los vectores, los objetos en conjuntos pueden incluir números, cadenas, null, matrices y vectores. En un futuro se plantea tener un tipo determinado de conjuntos, en lugar de utilizar vectores. Tenga en cuenta que los números en coma flotante son distintos de los enteros, y que parecen iguales. Esto significa que Genius los tratará como términos distintos, usando las constantes 0 y 0.0. La constante null se trata como un conjunto vacío.

Para construir un conjunto fuera de un vector, use la función MakeSet.Actualmente, sólo se devolverá un nuevo vector donde cada elemento es único.

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

Del mismo modo hay funciones que se explican por si mismas como Union, Intersection, SetMinus. Por ejemplo:

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

. Tenga en cuenta que no se garantiza el orden en los valores que devuelve la función. Si se quiere ordenar el vector puede usar la función SortVector.

Para los miembros del equipo de pruebas, hay funciones IsIn y IsSubset, que devuelven un valor tipo «bool». Por ejemplo:

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

La entrada IsIn(x,X) por supuesto es equivalente a IsSubset([x],X). Obsérvese que puesto que el conjunto vacío es un subconjunto de cada conjunto, IsSubset(null,X) es siempre «true».