2016-12-15 2 views
0

Alors j'essaie d'apprendre Lisp, et j'ai téléchargé GNU CLISP 2.49 sur mon PC Windows 10. J'ai déjà écrit du code dans un fichier et je veux le charger depuis le terminal CLISP avec la commande (load "example.lisp").Difficultés de chargement de fichiers en cliché

Où dois-je mettre le fichier pour pouvoir le charger comme ceci dans clisp?

J'ai le clisp installé dans C:\clisp-2.49.

Répondre

3

Vous devriez commencer par la documentation pour la fonction load, et le bas de la page vous donnera la réponse:

variable CUSTOM:*LOAD-PATHS*. La variable CUSTOM:*LOAD-PATHS* contient une liste de répertoires où les fichiers sont recherchés - en plus du répertoire spécifié ou en cours - par LOAD, REQUIRE, COMPILE-FILE et LOAD-LOGICAL-PATHNAME-TRANSLATIONS.

Donc, vous devriez examiner la variable custom:*load-paths* et ajoutez votre répertoire là:

(pushnew #p"c:/home/lisp/" custom:*load-paths* :test #'equalp) 

ou vous pouvez exécuter clisp dans le répertoire où se trouvent vos sources.

PS. Vous me devez maintenant 1 zorkmid. :-)

+0

Hey Sam, cet utilisateur pourrait-il utiliser 'clisp-2.49-win32-mingw-ming-big.exe' de Sourceforge? Cela me rappelle, jetez un oeil à ceci: http://www.kylheku.com/cygnal/ Les amis ne laissent pas leurs amis utiliser MingGW. :) – Kaz

2

En plus de l'excellente réponse de sds, voici une perspective Windows.

Dans un environnement de ligne de commande sous Windows ou Unix, vous ne fonctionneraient pas sur cette question, car il serait clair que vous êtes dans certains « répertoire de travail »:

C:\Users\me\lisp_project> clisp -q 
[1]> (load "example.lisp") 

C'est , charger un fichier en utilisant un chemin relatif sera relatif à ce répertoire. Il est clair dans le scénario ci-dessus que si le fichier C:\Users\me\lisp_project\example.lisp, c'est ce qui est chargé (sauf si quelqu'un a reconfiguré custom:*load-paths* pour ne pas regarder dans le répertoire de travail en cours).

Lorsque vous démarrez un processus à l'aide de l'interface graphique de l'Explorateur Windows, il dispose toujours d'un répertoire de travail en cours. Si vous démarrez un processus en lançant un fichier .exe, son répertoire de travail est le répertoire où se trouve le .exe.

Si vous lancez un exécutable via un raccourci, cependant, le répertoire de travail en cours est déterminé par une propriété du raccourci. Vous pouvez l'éditer: faites un clic droit sur le raccourci et changez le répertoire "Démarrer" en celui que vous voulez. En d'autres termes, vous pouvez créer un raccourci vers clisp.exe, le placer dans le dossier dans lequel vous travaillez et le faire démarrer dans ce dossier.

Cette approche devrait fonctionner pour n'importe quel interprète de langage, y compris ceux qui n'ont pas la sophistication des custom:*load-paths* de CLISP.