所以我正在尝试学习Lisp,我在Windows 10 PC上下载了GNU CLISP 2.49。我已经在文件中写了一些代码,我想用(load "example.lisp")
命令从CLISP终端加载它。
我应该把文件放在哪里才能在clisp中加载它?
我在C:\clisp-2.49
安装了clisp。
答案 0 :(得分:5)
您应该从load
函数的文档开始,页面底部将为您提供答案:
变量
CUSTOM:*LOAD-PATHS*
。变量CUSTOM:*LOAD-PATHS*
包含一个目录列表,除了指定的或当前目录外,还有LOAD,REQUIRE,COMPILE-FILE和LOAD-LOGICAL-PATHNAME-TRANSLATIONS查找文件。
因此,您应该检查变量custom:*load-paths*
并在那里添加您的目录:
(pushnew #p"c:/home/lisp/" custom:*load-paths* :test #'equalp)
或者您可以在源所在的目录中运行clisp
。
PS。你现在欠我1 zorkmid。 : - )
答案 1 :(得分:3)
除sds
的优秀答案外,这里还有Windows视角。
在Windows或Unix上的命令行环境中,您不会遇到此问题,因为很明显您处于某个“当前工作目录”中:
C:\Users\me\lisp_project> clisp -q
[1]> (load "example.lisp")
也就是说,使用相对路径加载文件将相对于此目录。在上面的场景中很清楚,如果文件C:\Users\me\lisp_project\example.lisp
,那就是加载的内容(除非有人重新配置custom:*load-paths*
不要查看当前工作目录)。
使用Windows资源管理器GUI启动进程时,它仍然具有当前工作目录。如果您通过启动.exe
文件来启动进程,则其工作目录是.exe
所在的目录。
但是,如果通过快捷方式启动可执行文件,则当前工作目录由快捷方式的属性确定。您可以编辑它:右键单击快捷方式并将“开始”目录更改为您想要的任何内容。
换句话说,您可以创建clisp.exe
的快捷方式,将其放入您正在使用的任何文件夹中,并让它“开始”该文件夹。
这种方法适用于任何语言翻译,包括那些缺乏CLISP custom:*load-paths*
复杂性的语言翻译。
答案 2 :(得分:0)
如果要从Desktop目录加载文件,可以执行以下操作:
(load "../../Users/User/Desktop/Dateiname.lisp")
答案 3 :(得分:0)
clisp-2.49-win32-mingw-ming-big.exe
将不起作用。确保目录中没有空格。