2.2.4. Funciones Definidas por el Usuario

Un programa grande suele dividirse en una serie de pequeñas formas o funciones de usuario más fáciles de implementar y depurar. Las mismas se componen a partir de llamadas a las funciones primitivas. Estas llamadas tendrán la forma de listas que podrán anidarse unas dentro de otras de acuerdo a lo que requiera la complejidad de la manipulación que quiera realizarse de los datos aportados como argumentos. Para la definición de funciones de usuario normalmente utilizaremos la forma especial DEFUN. Otra manera de representar funciones de usuario son las expresiones LAMBDA. El estudio de su relación con DEFUN contribuirá a una mejor comprensión del proceso. La carga de las funciones de usuario guardadas en ficheros se realiza mediante la función LOAD. Un fichero en que se guarda un programa LISP contiene las distintas formas o funciones de usuario, una a continuación de la otra, terminando por la función que debe invocarse para iniciar la ejecución del programa. Esto se debe a que la función LOAD imprimirá en pantalla el nombre de la última forma evaluada. El nombre de esta función inicial se suele comenzar con los caracteres "C:" lo que indica al sistema que dicha función de usuario debe tratarse como si fuera un comando nativo de AutoCAD, en el sentido de que pueda invocarse tecleando el nombre (sin el prefijo "C:") sin encerrarlo entre paréntesis. Una función de este tipo no admite argumentos en su lista de parámetros, aunque sí la declaración de variables locales.