El operador FUNCTION le indica al compilador Visual LISP que enlacey optimice un argumento tal como si fuera una función primitiva.
FUNCTION es idéntico a la función QUOTEexcepto en que fuerza la compilación del argumento de la misma maneraque lo haría DEFUN. Si incluímos las funciones internasen 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 USUBRanónima) en lugar de ser simplemente evaluado en tiempo deejecución. Las expresiones-LAMBDA compiladas contendráninformación para su depuración al ser cargadas en el IDE VisualLISP. 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 compiladorpodrá optimizar la expresión lambda:
Lo que redundará en un incremento de la velocidad de ejecuciónal generarse el correspondiente código optimizado en lenguaje demáquina. |
AutoCAD: Visual LISP > 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 >