Siguiente: , Anterior: , Subir: Estructuras   [Índice general][Índice]

5.6.1 Introducción a las estructuras

Maxima dispone de estructuras para la agregación de datos. Una estructura es una expresión en la que los argumentos se definen con un nombre (nombre del campo) y la estructura en su conjunto se define por medio de su operador (nombre de la estructura). Los valores dados a los campos pueden ser expresiones cualesquiera.

Una estructura se define con la función defstruct, guardando la variable structures la lista de todas las estructuras definidas por el usuario. El operador @ permite hacer referencias a los campos de la estructura. Con kill(S) se borra la estructura S completa y kill(x@ a) elimina la asignación actual del campo a en la estructura x.

En la impresión por consola (con display2d igual a true), las estructuras se representan con las asignaciones de los campos en forma de ecuación, con el nombre del campo a la izquierda y su valor asociado a la derecha. En la impresión unidimensional (mediante grind o dándole a display2d el valor false), las estructuras se escriben sin los nombres de los campos.

No es posible utilizar el nombre de un campo como nombre de función, pero el valor de un campo sí puede ser una expresión lambda. Tampoco es posible restringir los valores de los campos a tipos de datos concretos, siendo el caso que a cada campo se le puede asignar cualquier tipo de expresión. Por último, no es posible hacer que ciertos campos sean o no accesibles desde determinados contextos, ya que todos los campos son siempre visibles.


Siguiente: , Anterior: , Subir: Estructuras   [Índice general][Índice]