2011-04-18 84 views
3

LISP程序是否需要與LISP編譯器位於同一文件夾中,還是可以從任何地方調用它?如何運行LISP程序

+1

這很大程度上取決於程序的結構(它是一個ASDF系統?僅僅是一個裸函數?一個.lisp?)以及您正在使用的lisp編譯器。 – yan 2011-04-18 19:20:20

+1

我最喜歡的方式 - 認真 - 是在emacs中運行它。 – Cheeso 2011-04-18 19:21:36

+0

這是一個基本的.lisp文件。我不確定哪種編譯器最適合使用。我有Windows 7和我發現的大部分LISP編譯器都不能在Windows上運行。 – 2011-04-18 19:21:47

回答

6

基本操作是呼叫load,其中路徑名稱爲

(load #p"/home/user710086/foo.lisp") 

然後,您可能需要運行該文件提供的任何「main」函數。

該位置也可以位於當前目錄,當然這是依賴於平臺的。 當前目錄通常與Lisp可執行文件所在的目錄無關,而是您從中調用它的shell的目錄。我不知道什麼當前目錄是在Windows中,當你點擊某個東西時,但我猜測它是一些主目錄代理。

有幾件事情可能包裝在基本操作中。通常,代碼被組織到ASDF系統中,並且定義了一個或多個。這樣,你會在.asd文件添加到asdf:*asdf-registry*,然後用

(asdf:load-sys 'foo) 

此加載包將加載在.asd文件中的計算順序定義的所有文件,從而爲您提供系統的功能。

+0

如果我在程序中有多個函數會怎麼樣?我首先跑哪一個很重要? – 2011-04-18 19:46:32

+0

首先你編譯哪個並不重要(儘管如果遇到未知的函數名,它可能會發出警告)。你運行的只是入口點。 – Svante 2011-04-18 19:59:44