require
se utiliza para los módulos, que cada uno puede constar de uno o varios archivos.
load
se utiliza para cargar un solo archivo arbitrario.
Los require
pruebas de función si un módulo ya está presente (utilizando una comparación mayúsculas y minúsculas); si el módulo no está presente, solicite para cargar el archivo apropiado o un conjunto de archivos. El argumento de la ruta , si está presente, es una sola ruta de acceso o una lista de rutas cuyos archivos se deben cargar en orden, a la izquierda a la derecha. Si el argumento del nombre de ruta es nil o no se proporciona, el sistema intentará determinar, de alguna manera dependiente del sistema , qué archivos cargar. Esto generalmente implicará algún registro central de los nombres de los módulos y las listas de archivos asociadas.
Fuente: http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node119.html
La función load
carga el fichero nombrado por nombre del archivo en el entorno Lisp. Se se supone que un texto (carácter archivo) puede ser automáticamente distingue de un objeto (binario) archivo por algunos medios dependientes de la implementación apropiadas, posiblemente por el tipo de archivo. Los valores predeterminados para nombre de archivo se toman de la variable default-pathname-defaults. Si el nombre de archivo (después de la fusión de los valores predeterminados ) no especifica un tipo, y ambos tipos de texto y objetos del archivo están disponibles en el sistema , la carga debe intentar seleccionar el archivo más apropiado por algunos medios dependientes de la implementación.
Fuente: http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node217.html
Para cualquiera que lea esta pregunta y responda a ella: _ ** requiere ** y todo el sistema de módulos ** está en desuso ** en Common Lisp desde la estandarización ANSI !. – hijarian