2016-12-15 98 views
0

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

我应该在哪里放置文件,以便能够在clisp中像这样加载它?

我的clisp安装在C:\clisp-2.49

回答

3

你应该与文档的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。 :-)

+0

嘿山姆,这个用户可能会使用Sourceforge的'clisp-2.49-win32-mingw-ming-big.exe'吗?这让我想起,看看这个:http://www.kylheku.com/cygnal/朋友们不要让朋友使用MingGW。 :) – Kaz

2

除了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*的复杂性的翻译。