clisp 中的文件加载困难

File loading difficulties in clisp

所以我正在尝试学习 Lisp,并在我的 Windows 10 PC 上下载了 GNU CLISP 2.49。我已经在文件中编写了一些代码,我想使用 (load "example.lisp") 命令从 CLISP 终端加载它。

我应该把文件放在哪里才能像这样在 clisp 中加载它?

我在 C:\clisp-2.49 中安装了 clisp。

你应该从load函数的文档开始,页面底部会给你答案:

Variable CUSTOM:*LOAD-PATHS*. The variable CUSTOM:*LOAD-PATHS* contains a list of directories where the files are looked for - in addition to the specified or current directory - by LOAD, REQUIRE, COMPILE-FILE and LOAD-LOGICAL-PATHNAME-TRANSLATIONS.

因此,您应该检查变量 custom:*load-paths* 并在其中添加您的目录:

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

或者您可以 运行 clisp 在您的源文件所在的目录中。

PS。你现在欠我1 zorkmid。 :-)

除了sds的精彩回答,这里还有一个Windows的观点。

在 Windows 或 Unix 的命令行环境中,您不会 运行 进入这个问题,因为很明显您处于某些 "current working directory" 中:

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

即使用相对路径加载文件,会相对于该目录。在上面的场景中很明显,如果文件 C:\Users\me\lisp_project\example.lisp,那就是加载的内容(除非有人重新配置 custom:*load-paths* 不在当前工作目录中查找)。

当您使用 Windows Explorer GUI 启动进程时,它仍然有一个当前工作目录。如果您通过启动 .exe 文件来启动进程,则其工作目录是 .exe 所在的目录。

但是,如果您通过快捷方式启动可执行文件,则当前工作目录由快捷方式的 属性 确定。您可以编辑它:右键单击快捷方式并将 "Start in" 目录更改为您想要的任何内容。

换句话说,您可以创建 clisp.exe 的快捷方式,将其放入您正在使用的任何文件夹中,然后 "start in" 该文件夹。

这种方法适用于任何语言解释器,包括那些缺乏 CLISP 的复杂性的语言解释器 custom:*load-paths*

如果你想从你的桌面目录加载一个文件,你可以这样做:

(load "../../Users/User/Desktop/Dateiname.lisp")
如果当前目录中有空格,

clisp-2.49-win32-mingw-ming-big.exe 将不起作用。确保您的目录中没有任何空格。