球拍模塊路徑指數已經Module Paths(謂語是module-path?
),Resolved Module Paths(謂語是resolved-module-path?
)和Module Path Indexes(謂語是module-path-index?
)。什麼是球拍
我想module-path?
是任何可能合理地指向一個模塊。我想解決的模塊路徑指向系統上的實際模塊。
但什麼是模塊路徑索引,它是什麼讓我只是解決模塊路徑?
球拍模塊路徑指數已經Module Paths(謂語是module-path?
),Resolved Module Paths(謂語是resolved-module-path?
)和Module Path Indexes(謂語是module-path-index?
)。什麼是球拍
我想module-path?
是任何可能合理地指向一個模塊。我想解決的模塊路徑指向系統上的實際模塊。
但什麼是模塊路徑索引,它是什麼讓我只是解決模塊路徑?
A module-path?
包含任何可能是require
d。可能是path?
,可能是符號,可能是子模塊路徑(submod "food.rkt" lunch)
。請參閱文檔中的require
。
甲resolved-module-path?
是「絕對路徑」到球拍可以找到模塊(注1)。解析模塊路徑的語法比模塊路徑更受限制(即不太模糊)。
甲module-path-index?
(MPI)是從一個module-path-index?
到另一個(注2)的增量。使用module-path-index-join
構建MPI(注3)。
(module-path-index-join #f #f
)是從當前模塊到它自身的增量。(module-path-index-join "dumplings.rkt" #f)
是從#f
增量(當前模塊)的相對路徑"./dumplings.rkt"
(是它是真正路徑第一,然後基。)(module-path-index-join "nom-noms.rkt" (module-path-index-join "dumplings.rkt" #f))
是從當前模塊"./dumplings.rkt"
到"./nom-noms.rkt"
的增量。當一個文件靜態地需要另一個文件時,球拍建立這樣的MPI--這些可以被鏈接在一起以找到標識符的綁定。(module-path-index-join '(submod test) #f)
是指當前模塊中的測試子模塊。希望有幫助。
注1:如果模塊位於文件中,則其解析路徑爲絕對文件路徑。如果模塊是在語法對象上調用eval
的結果,則其resolved-module-path?
是別的。
注2:IMO「模塊路徑增量」將是一個更好的名稱。
注意3:module-path-index-join
接受第三個可選參數,前兩個參數爲#f
。這可讓模塊引用其自己的子模塊之一。您通常不希望直接使用此功能。而是使用quote-module-path
。
將此轉移到註釋;-)部分難題是模塊路徑索引是半實體的,這對模塊系統很重要(兩次加載模塊是個壞主意)。 – soegaard
是的,他們是半實習的,只是爲了幫助雙重加載。儘管有時候你確實想要加載一個模塊兩次,比如你正在編寫DrRacket,並且你希望模塊在用戶運行時運行。 –