2009-12-20 57 views
6

我正在經歷Practical Common Lisp,我差不多完成了,到目前爲止我還沒有回答過的一個問題(或者我錯過了)是「require」和「load」之間的區別。需求和負載共同lisp有什麼區別?

那麼有什麼區別?

謝謝。

+0

對於任何閱讀這個問題,答案是:_ ** **需要和整個模塊系統**由於ANSI standardization_已過時** Common Lisp中! – hijarian 2015-12-29 03:50:38

回答

8

require用於模塊,其可以分別包括一個或多個文件的。

load用於加載任意單個文件中。

require功能測試一個 模塊是否已經存在(使用 區分大小寫的比較);如果 模塊不存在,則要求 繼續加載適當的文件 或一組文件。路徑名 說法,如果存在的話,是一個 路徑名或路徑名,其 文件才能被加載,左 向右的列表。如果路徑名參數是 爲零或不設置,系統 將嘗試確定,在一些 系統依賴的方式,哪些文件 加載。這通常涉及 模塊名稱 和相關文件列表的一些中央註冊表。

來源:http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node119.html

load函數加載由 文件名命名爲Lisp的環境中的文件。它假定文本(字符 文件)可以自動地由對象(二進制) 文件通過一些適當的 實現相關裝置區分, 可能通過文件類型來區分 文件。該 默認值的文件名從 可變 缺省路徑名-默認截取。如果文件名(默認爲 合併後)沒有明確指定 類型,並且文件的文本和對象類型 在文件 系統中均可用,則加載應嘗試選擇 更合適的文件一些 實現相關的手段。

來源:http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node217.html

+4

CLTL對CL來說不是一個好的主要參考; HyperSpec更好。請參閱http://l1sp.org/cl/load或http://l1sp.org/cl/require獲取正確位置的簡短鏈接。 – Xach 2009-12-20 00:57:35

2

不同的是,(require)加載模塊,如果它尚未已經裝載; (load)加載文件。

相關問題