Conjuntos
Los conjuntos se utilizan para determinar el dominio y codominio de las funciones (corresponden a los tipos de los lenguajes de programación).
A continuación se muestran algunos ejemplos de definiciones de conjuntos.
conj Mes = {Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Setiembre, Octubre, Noviembre, Diciembre}
conj Rno0 = { x en R | x /= 0 }
conj Rango = { x en N | ( x > 2 , x < 10 ) }
conj OtroRango = { x en Rango | x /= 5 }
Un conjunto se define usando la palabra reservada conj, se le asigna un nombre y los elementos que contiene.
El nombre de un conjunto es una cadena de caracteres alfanuméricos que comienza con un caracter alfabético en mayúscula.
Los elementos se pueden expresar por enumeración o por comprensión. Para definir un conjunto por enumeración se deben enumerar, separados por coma, los elementos (cadenas alfanuméricas que comienzan con mayúscula) que lo integran.
Por ejemplo, Mes en la Figura 1 es un conjunto definido por enumeración que contiene los elementos Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio , Agosto, Setiembre, Octubre, Noviembre y Diciembre.
Para definir un conjunto por comprensión se debe establecer un conjunto de partida y la condición que deben cumplir los elementos de dicho conjunto para pertenecer al conjunto que se está definiendo. Por lo tanto el nuevo conjunto será subconjunto del conjunto de partida. El conjunto de partida puede ser definido por el usuario como el caso de OtroRango en la Figura 1.
Una condición puede ser una relación binaria entre dos expresiones o una lista de estas relaciones, entre paréntesis y separadas por comas, como se muestra en los conjuntos Rno0 y Rango de la Figura 1.
Las relaciones binarias son las usuales de igualdad y orden. Notar que la relación de igualdad se indica con ==.
"==", "/=", "<", ">", "<=", ">="
En el caso de tener una lista de relaciones, el resultado de su evaluación es la conjunción lógica (∧) entre todas ellas. El conjunto Rno0 de la Figura 1 representa al conjunto de los reales (R) distintos de 0, mientras que el conjunto Rango representa al subconjunto de N que contiene los números entre 3 y 9. Notar que las variables, a diferencia de los nombres y elementos de conjuntos, comienzan con minúsculas.
Los conjuntos pueden ser elementales o compuestos. Los conjuntos elementales son los primitivos (R para los reales, Z para los enteros, Fig para las figuras en dos dimensiones, Fig3D para las figuras en tres dimensiones y Color para los colores) y los enumerados definidos por el usuario. También son elementales los conjuntos definidos por comprensión que tienen como conjunto de partida un conjunto elemental.
Los conjuntos compuestos son los productos cartesianos que contienen n-uplas y los conjuntos de secuencias que contienen secuencias. Por ejemplo el producto cartesiano R X R X N contiene ternas formadas por dos números reales y un natural, que se escriben entre paréntesis y separados por coma. Por ejemplo un elemento del conjunto R X R X N es (2.3, 4.2, 5). Una secuencia es lo que en los lenguajes de programación se suele llamar lista y contiene eleemntos ordenados de un conjunto A cualquiera. Por ejemplo, si el conjunto dado es R, el conjunto de secuencias de reales se denota R* en MateFun y algunos de sus elementos son [-1.6, 2.0, 3.0 -5.5], [0,-4.5]. Las secuencias se describen más detalladamente en la sección Secuencias.