Los predicados son funciones que devuelven respuestas lógicas
(cierto-falso), mientras que las estructuras de control controlan la
ejecución del programa y permiten múltiples ramificaciones.
- PREDICADOS
- Permiten comprobar características relacionadas con el tipo de dato
con que se está operando en cada momento. Devuelve
T
(cierto) si la condición se cumple y nil (falso) en caso
contrario.
- PREDICADOS GENERALES: Suelen
distinguirse por terminar el nombre de la función en la letra
P que significa predicado. Se utiliza la siguiente regla para
decidir si la P está precedida por un guión: si el nombre del
predicado se forma añadiendo la P a un nombre existente, tal como el
nombre de un tipo de dato, se añade un guión sólo en el
caso de que el nombre original incluya alguno (BOUNDP, LISTP,
NUMBERP sin guión ó VL-FILE-DIRECTORY-P,
VLAX-ERASED-P con guión). Los predicados que fueron introducidos
con Visual LISP se conocen por los prefijos que se adicionan VL-, VLAX- o
VLR- (VL-CONSP, VLAX-PROPERTY-AVAILABLE-P, VLR-ADDED-P) . En casos como
VL-CONSP se hace una excepción a la regla anterior, puesto
que en realidad se está renombrando un predicado standard de Common
LISP.
PREDICADOS SOBRE ÁTOMOS Y LISTAS
- PREDICADOS ARITMÉTICOS: Corresponden a las funciones de comparación (mayor que,
menor que, igual a...).
- OTROS PREDICADOS DEFINIDOS POR EL
USUARIO: muestra de la extensibilidad de LISP.
- OPERADORES LÓGICOS
- Corresponden a las operaciones Booleanas básicas. LISP suministra
tres operadores sobre valores Booleanos:
and , or , y
not . De ellos, and y or son
también en cierto modo estructuras de control ya que sus argumentos son
evaluados condicionalmente. Permiten agrupar las condiciones de prueba, casi
siempre a partir de la utilización de predicados que se utilizan dentro
de las estructuras de programación descritas más adelante.La
función not tiene un sólo argumento que analizar, y
es por ello una función simple.
- ESTRUCTURAS
CONDICIONALES
- Visual LISP provee las dos estructuras de control tradicionales de LISP. La
estructura condicional de más tradición en LISP es
COND. Sin embargo
IF resulta más simple y es
directamente comparable a las estructuras condicionales de otros lenguajes de
programación.
|
|