2.2.4.4. Load

Una de las virtudes de LISP es la posibilidad de construir, a partir de lasprimitivas aportadas por el lenguaje, las funciones necesarias para eldesarrollo de una aplicación específica. Estas funciones operande manera idéntica a las funciones primitivas. Si bien podemos evaluarlas funciones LISP desde la Consola de Visual LISP o desde la propialínea de comandos de AutoCAD, cuando se trata de funciones másextensas 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 deprogramación que facilita la redacción de programas lisp medianteuna serie de ayudas, tales como el texto coloreado según la sintaxis yla identación y formateo automático del texto. Trabajando en esteIDE se pueden cargar las funciones o "formas" contenidas en elarchivo fuente en desarrollo mediante el correspondiente botón de la barra deherramientas u opciones de menú. La instrucción LISP para cargaren 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 otrafunción LISP e incluso de manera recursiva (en el fichero que seestá cargando).
nombre_archivo debe ser una cadena que representa el nombre del fichero. Si nose incluye la extensión LOAD comprobará la existencia de unfichero con ese nombre y alguna de las siguientes extensiones en el orden quese especifica a continuación:

  • .vlx
  • .fas
  • .lsp

Se cargará el primer fichero encontrado. Si load no se ejecuta deforma correcta, devuelve el valor del argumento si_falla. Sin embargo,si si_falla no se especifica, un fallo de load genera un error deVisual 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 admiteuna letra de unidad. Una barra oblicua (/) o dos contrabarras (\\ ) son delimitadores de directorio válidos. Si no incluye un prefijode directorio en la cadena nombre_archivo, load busca el archivoespecificado en el camino de la biblioteca AutoCAD. Si lo encuentra encualquier parte de este camino, load lo carga.
Si el argumento si_falla es una función válida de VisualLISP, se calcula. En la mayoría de los casos, el argumento si_falla debería ser una cadena o un átomo. Esto permite que unaaplicación Visual LISP que llame a load tome una acciónalternativa cuando se produce un fallo.