2.1. Tipos de Datos


Antes de iniciarnos en la programación LISP, examinaremos los datoscon que este lenguaje opera. Las posibilidades de un lenguaje deprogramación están directamente relacionadas con la oferta deprocedimientos y funciones y en sobre qué tipos de datos pueden ellosoperar.

Los tipos de datos originales son los ÁTOMOS ylas LISTAS. Los ÁTOMOS y las LISTAS son mutuamenteexcluyentes: un objeto LISP es lo uno o lo otro. Con una excepción: lalista vacía o NIL, que estudiaremos más adelante. Las listas seconstruyen recursivamente a partir de átomos y/o listas.

Ejemplos:

ÁTOMOSLISTAS
a
()
juan
(juan)
45
(a juan 45 z5mn)
z5mn
((juan 45) a ((z5mn)))

AutoLISP y Visual LISP utilizan además otros tiposde datos que estudiaremos más adelante y que resultan necesariospara la gestión de los dibujos en el entorno AutoCAD.

Tanto los átomos como las listas son expresiones válidas LISPque el intérprete lee y evalúa. Las reglas para laevaluación de ambos tipos de objetos se describen a continuación:


ÁTOMOS

Los átomos son las expresiones LISPmás elementales. Siempre tienen un nombre constituido por una secuenciade caracteres y por ello se asemejan a las palabras de un lenguaje. Los nombresde átomos se separan de otras expresiones mediante espacios en blanco,paréntesis o cambios de línea. Un átomo no es divisible.Como norma general, todos los elementos que no sean una lista se consideranátomos. Al recibir un átomo, el evaluador lisp intenta determinarsu valor. Este valor puede estar representado por el nombre mismo delátomo, que entonces consideraremos como una "constante" o puede ser un objeto LISPdistinto, en cuyo caso estaremos ante un átomo "simbólico". Los átomossimbólicos se utilizan dentro de los programas para almacenar valores,siendo conocidos entonces como "variables".

LISTAS


El nombre LISP viene de LISt Processing (Procesamiento de Listas),indicando el mecanismo fundamental sobre el que se desarrolla el lenguaje. Laslistas LISP son grupos de valores relacionados,separados por espacios e incluidos entre paréntesis redondos"(" y ")". En LISP, el orden de los elementos incluidos enuna lista es significativo. En esto se distingue el concepto de lista delconcepto de conjunto, en el que el ordenamiento de los términos no tienerelevancia. Otra diferencia entre listas y conjuntos reside en que en una listapueden haber términos repetidos, mientras que en un conjunto cadatérmino ocurre una sóla vez. Las listas proporcionan unmétodo eficaz para almacenar valores relacionados. AutoCAD expresa lospuntos 3D como una lista de tres números reales donde el primer valor esel de la coordenada X, el segundo la coordenada Y, el tercero la coordenada Z.Esto indica que el orden de los términos de una lista es significativo yen esto se diferencia del concepto de conjunto. Además una lista admitetérminos repetidos. Dentro de las posibles listas podemos distinguirtres casos:

TIPOS DE DATOSESPECÍFICOS DE AUTOCAD:

  • CONJUNTOS DE SELECCIÓN

    Los conjuntos de selección son grupos compuestos por uno o varios objetos (entidades). Las rutinas de AutoLISP permiten añadir o suprimir de forma interactiva objetos de los conjuntos de selección.
  • NOMBRES DE ENTIDAD

    Un nombre de entidad es un identificador numérico asignado a los objetos de un dibujo. En realidad, se trata de un puntero a un archivo mantenido por AutoCAD, en el que AutoLISP puede encontrar el registro de la base de datos de objetos. Este puntero suele cambiar de una sesión de trabajo a otra.
  • DESCRIPTORES DE ARCHIVO

    Los descriptores de archivo son identificadores alfanuméricos asignados a archivos abiertos por Visual LISP. Cuando sea necesario que una función de Visual LISP lea o escriba en un archivo, debe hacerse referencia a su identificador.
  • SUBRUTINAS, SUBRUTINAS EXTERNAS Y FUNCIONES DEUSUARIO

    Funciones Nativas LISP o funciones externas cargadas desde archivos compilados FAS ó VLX y archivos fuente LISP.
  • TABLAS DE PAGINACIÓN

  • OBJETOS Y TIPOS DE DATOS ACTIVEX

    Objetos propios y determinados formatos para los datos que se pasan a losmétodos ActiveX.

COMPROBACIÓN DEL TIPO DE DATO:

  • FUNCIÓN TYPE

    Devuelve el tipo de un elemento designado
    (type elemento)