DEFUN permite definir una nueva función de usuario con el
nombre sím (el nombre de la función se incluye
automáticamente en un QUOTE). Detrás del nombre de la
función aparece una lista de parámetros (posiblemente
vacía), con los argumentos a recibir, y que puede estar seguida por una
barra oblicua y los nombres de uno o más símbolos locales
(variables locales) que serán definidas para uso exclusivo de esta
función. Esta barra oblicua debe ir separada del primer símbolo
local y del último argumento, si existe, por un espacio como
mínimo. Si no declara ningún argumento ni variable local, se debe
incluir una lista vacía tras el nombre de la función. Los
argumentos son tratados como una especie de variables locales en el sentido de
que no estarán disponibles fuera de la función. Los nombres de
argumentos deben ser únicos dentro de la misma función.
Así hemos creado una nueva función Lisp que puede llamarse desde el nivel superior o anidada en otras funciones:
Un programa Lisp usualmente incluye una colección de tales defuns, asemejándose en ello a un fichero de definiciones de procedimientos en lenguajes tales como C o Pascal. Pero, según puntualiza Graham, "algo muy diferente está sucediendo aquí. Las funciones Lisp son objetos por sí mismas. Lo que realmente hace DEFUN es construir una función y guardarla bajo el nombre que aparece como primer argumento." Paul Graham, On Lisp, pág. 10 Podemos acceder a la función asociada al símbolo DOBLE utilizando la función Visual LISP vl-symbol-value:
En versiones anteriores de AutoLISP la función creada con defun era una lista:
En Visual LISP la función de usuario creada con defun es una función compilada que contiene instrucciones en lenguaje de máquina, por lo tanto en Autocad 2000 obtendremos:
|
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 >