El operador FUNCTION le indica al compilador Visual LISP que enlace y optimice un argumento tal como si fuera una función primitiva.
FUNCTION es idéntico a la función QUOTE excepto en que fuerza la compilación del argumento de la misma manera que lo haría DEFUN. Si incluímos las funciones internas en expresiones del tipo (function (lambda <parámetros> <expresiones> ...) en lugar de (quote (lambda <parámetros> <expresiones> ...)) ó '(lambda <parámetros> <expresiones> ...), nos aseguraremos que el código sea enlazado (linked) y optimizado en tiempo de compilación (como una USUBR anónima) en lugar de ser simplemente evaluado en tiempo de ejecución. Las expresiones-LAMBDA compiladas contendrán información para su depuración al ser cargadas en el IDE Visual LISP. Admite un argumento símbolo que nombra una función y una expresión-lambda de la forma: (LAMBDA argumentos {expresión-S}*) Ejemplos:
Pero una vez incluida la expresión dentro de FUNCTION el compilador podrá optimizar la expresión lambda:
Lo que redundará en un incremento de la velocidad de ejecución al generarse el correspondiente código optimizado en lenguaje de máquina. |
Apuntes para un Curso... > Programación de Aplicaciones Gráficas > 2. Técnicas Fundamentales > 2.2. Funciones > 2.2.4. Funciones Definidas por el Usuario >