Antes de iniciarnos en la programación LISP, examinaremos los datos con que este lenguaje opera. Las posibilidades de un lenguaje de programación están directamente relacionadas con la oferta de procedimientos y funciones y en sobre qué tipos de datos pueden ellos operar.
Los tipos de datos originales son los ÁTOMOS y las LISTAS. Los ÁTOMOS y las LISTAS son mutuamente excluyentes: un objeto LISP es lo uno o lo otro. Con una excepción: la lista vacía o NIL, que estudiaremos más adelante. Las listas se construyen recursivamente a partir de átomos y/o listas.
Ejemplos:
ÁTOMOS | LISTAS |
|
|
|
|
|
|
|
|
AutoLISP y Visual LISP utilizan además otros tipos de datos que estudiaremos más adelante y que resultan necesarios para la gestión de los dibujos en el entorno AutoCAD.
Tanto los átomos como las listas son expresiones válidas LISP que el intérprete lee y evalúa. Las reglas para la evaluación de ambos tipos de objetos se describen a continuación:
ÁTOMOS
- Los átomos son las expresiones LISP más elementales. Siempre tienen un nombre constituido por una secuencia de caracteres y por ello se asemejan a las palabras de un lenguaje. Los nombres de á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 determinar su valor. Este valor puede estar representado por el nombre mismo del átomo, que entonces consideraremos como una "constante" o puede ser un objeto LISP distinto, en cuyo caso estaremos ante un átomo "simbólico". Los átomos simbó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. Las
listas LISP son grupos de valores relacionados,
separados por espacios e incluidos entre paréntesis redondos
"
(
" y ")
". En LISP, el orden de los elementos incluidos en una lista es significativo. En esto se distingue el concepto de lista del concepto de conjunto, en el que el ordenamiento de los términos no tiene relevancia. Otra diferencia entre listas y conjuntos reside en que en una lista pueden haber términos repetidos, mientras que en un conjunto cada término ocurre una sóla vez. Las listas proporcionan un método eficaz para almacenar valores relacionados. AutoCAD expresa los puntos 3D como una lista de tres números reales donde el primer valor es el 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 y en esto se diferencia del concepto de conjunto. Además una lista admite términos repetidos. Dentro de las posibles listas podemos distinguir tres casos:
TIPOS DE DATOS ESPECÍ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 DE USUARIO
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 los métodos ActiveX.
COMPROBACIÓN DEL TIPO DE DATO:
-
FUNCIÓN TYPE
Devuelve el tipo de un elemento designado
(type elemento)