Los predicados son funciones que devuelven respuestas lógicas(cierto-falso), mientras que las estructuras de control controlan laejecución del programa y permiten múltiples ramificaciones. - PREDICADOS
- Permiten comprobar características relacionadas con el tipo de datocon que se está operando en cada momento. Devuelve
T (cierto) si la condición se cumple y nil (falso) en casocontrario.- PREDICADOS GENERALES: Suelendistinguirse por terminar el nombre de la función en la letra
P que significa predicado. Se utiliza la siguiente regla paradecidir si la P está precedida por un guión: si el nombre delpredicado se forma añadiendo la P a un nombre existente, tal como elnombre de un tipo de dato, se añade un guión sólo en elcaso 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 introducidoscon Visual LISP se conocen por los prefijos que se adicionan VL-, VLAX- oVLR- (VL-CONSP, VLAX-PROPERTY-AVAILABLE-P, VLR-ADDED-P) . En casos comoVL-CONSP se hace una excepción a la regla anterior, puestoque en realidad se está renombrando un predicado standard de CommonLISP. 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 ELUSUARIO: muestra de la extensibilidad de LISP.
- OPERADORES LÓGICOS
- Corresponden a las operaciones Booleanas básicas. LISP suministratres operadores sobre valores Booleanos:
and , or , ynot . De ellos, and y or sontambién en cierto modo estructuras de control ya que sus argumentos sonevaluados condicionalmente. Permiten agrupar las condiciones de prueba, casisiempre a partir de la utilización de predicados que se utilizan dentrode las estructuras de programación descritas más adelante.Lafunción not tiene un sólo argumento que analizar, yes por ello una función simple.
- ESTRUCTURASCONDICIONALES
- Visual LISP provee las dos estructuras de control tradicionales de LISP. Laestructura condicional de más tradición en LISP esCOND. Sin embargoIF resulta más simple y esdirectamente comparable a las estructuras condicionales de otros lenguajes deprogramación.
|
|