2.2.4.4. Load

Una de las virtudes de LISP es la posibilidad de construir, a partir de las primitivas aportadas por el lenguaje, las funciones necesarias para el desarrollo de una aplicación específica. Estas funciones operan de manera idéntica a las funciones primitivas. Si bien podemos evaluar las funciones LISP desde la Consola de Visual LISP o desde la propia línea de comandos de AutoCAD, cuando se trata de funciones más extensas lo usual es escribirlas en un fichero de texto (con extensión LSP) y cargarlas mediante la función LOAD. El IDE (Entorno de Desarrollo Integrado) Visual LISP incluye un editor de programación que facilita la redacción de programas lisp mediante una serie de ayudas, tales como el texto coloreado según la sintaxis y la identación y formateo automático del texto. Trabajando en este IDE se pueden cargar las funciones o "formas" contenidas en el archivo fuente en desarrollo mediante el correspondiente botón de la barra de herramientas u opciones de menú. La instrucción LISP para cargar en memoria un programa LISP contenido en un fichero es LOAD:

(load nombre_archivo [si_falla])

La función LOAD puede ser usada desde dentro de otra función LISP e incluso de manera recursiva (en el fichero que se está cargando).
nombre_archivo debe ser una cadena que representa el nombre del fichero. Si no se incluye la extensión LOAD comprobará la existencia de un fichero con ese nombre y alguna de las siguientes extensiones en el orden que se especifica a continuación:

  • .vlx
  • .fas
  • .lsp

Se cargará el primer fichero encontrado. Si load no se ejecuta de forma correcta, devuelve el valor del argumento si_falla. Sin embargo, si si_falla no se especifica, un fallo de load genera un error de Visual LISP. Si la operación es correcta, load devuelve el valor de la última expresión del archivo.
El nombre_archivo puede incluir un prefijo de directorio, como en "/ función/prueba1". En los sistemas DOS también se admite una letra de unidad. Una barra oblicua (/) o dos contrabarras (\\ ) son delimitadores de directorio válidos. Si no incluye un prefijo de directorio en la cadena nombre_archivo, load busca el archivo especificado en el camino de la biblioteca AutoCAD. Si lo encuentra en cualquier parte de este camino, load lo carga.
Si el argumento si_falla es una función válida de Visual LISP, se calcula. En la mayoría de los casos, el argumento si_falla debería ser una cadena o un átomo. Esto permite que una aplicación Visual LISP que llame a load tome una acción alternativa cuando se produce un fallo.