next up previous contents
Next: B.1.3 Tipos de funciones Up: LE-LISP Previous: Los objetos LE-LISP

B.1.2 Otros tipos de datos importantes

Arrays

LE-LISP implementa funciones para el manejo de arrays multidimensionales. makearray permite crear un array multidimensional, mientras que aref y aset permiten obtener y establecer, respectivamente, el valor asociado a una posición del array.

Tablas hash

Las tablas hash se incorporaron en la versión 15.2 de LE-LISP. Permiten procesar pares formados por una clave y un valor de una manera más eficiente que las listas de asociación. En las tablas hash el tiempo de búsqueda no es función del número de elementos contenidos en la tabla, sino de una constante que depende únicamente del estado de la tabla hash.

Las tablas hash son adaptativas, ya que minimizan la constante del tiempo de búsqueda y al mismo tiempo optimizan el uso del espacio de memoria reservado para el almacenamiento de las asociaciones clave/valor.

El valor de una tabla hash es la tabla hash en sí misma, por lo que no es necesario utilizar la quote con ellas.

Hay dos clases de tablas hash, diferenciándose en si la función de búsqueda de claves utiliza el predicado equal o el predicado eq. Las primeras se crean con make-hash-table-equal y las segundas con make-hash-table-eq.

Las siguientes funciones operan sobre tablas hash:

En la implementación descrita en esta tesina, se utilizan tablas hash para almacenar la correspondecia entre el texto y los tokens resultantes del análisis de la entrada.

Conjuntos matemáticos

LE-LISP incluye funciones que permiten manejar listas como si fuesen conjuntos. En una lista que va a ser utilizada como conjunto el orden de los elementos no es relevante. De hecho, cuando una de tales listas es el valor devuelto por una función, el orden en que estarán sus elementos es impredecible.


next up previous contents
Next: B.1.3 Tipos de funciones Up: LE-LISP Previous: Los objetos LE-LISP

Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997