Muchos de las tareas que tratamos de resolver con ordenadores implican la ejecución de procedimientos en forma repetitiva. LISP suministra dos paradigmas para el control de las tareas repetitivas: la recursión y la iteración.
La definición de nuevas funciones consiste básicamente en la combinación de llamadas a otras función que resulten adecuadas a los fines que nos proponemos. Un caso particular surge cuando la función se llama a sí misma. Estas funciones suelen llamarse funciones recursivas. Obsérvese que la función recursiva se repite invocándose a sí misma. Esto lo hace desde la llamada inicial al programa. Así que para cada repetición hay una nueva llamada a la función original.
Cualquier otro procedimiento repetitivo que no implique una recursión es un procedimiento iterativo. Visual LISP suministra una serie de funciones específicas para la implementación de procedimientos iterativos. Las formas más simples de establecer una iteración serían las función REPEAT y FOREACH para listas y VLAX-FOR para colecciones de objetos ActiveX (VLA-object). REPEAT realiza los procedimientos especificados el número de veces que se especifique en su primer argumento que debe ser un número entero positivo. FOREACH suministra una iteración de manera directa sobre los elementos de una lista. FOREACH debe recibir como segundo argumento una forma que evalúe como lista. Entonces ejecuta el cuerpo de instrucciones suministrado como sucesivos argumentos una vez para cada uno de los elementos de la lista. Cuando la conclusión del ciclo de repeticiones dependa de que se alcance determinado estado y no sea posible predeterminar el número de iteraciones que ello exigirá podemos utilizar la función WHILE que admite como primer argumento una función predicado cuyo no cumplimiento (evaluación como NIL) determinará la salida del bucle iterativo.
Existen también las llamadas funciones de mapeado. El Mapeado es un tipo de iteración en la cual una función se aplica sucesivamente a elementos de una o más secuencias de objetos. El resultado de la iteración es una secuencia que contiene los resultados de las aplicaciones de la función. Visual LISP provee dos funciones de mapeado: MAPCAR, para listas y VLAX-MAP-COLLECTION para colecciones de objetos ActiveX.
Inicio | Índice | Continuar... |