2016-12-15 61 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*的複雜性的翻譯。