1
如果我有一個名稱空間符號,例如'clojure.core
或者一個clojure源文件的路徑我怎樣才能得到所有名稱空間的新符號,即不是:refer
-ed或在另一個命名空間中被實現?如何獲取Clojure名稱空間中的所有新符號
這些符號將來自頂級def
s(和defn
s),但也包含在let
綁定等內。我的目標是分析一個名稱空間並有效地對樹進行遍歷,從而根據謂詞對某些符號進行查找替換。
編輯:我不只是尋找頂級增值稅,我正在尋找任何符號。如果有一個帶有let綁定的函數,我正在尋找綁定的符號。
你可能會想使用clojure.tools.analyzer,而不是走自己的樹。它應該能夠告訴你哪裏的符號來自樹行走的一部分,因此無論如何您都不需要收集「新」符號的初步步驟。 – amalloy
[如何列出名稱空間的函數?](https://stackoverflow.com/questions/2747294/how-to-list-the-functions-of-a-namespace)可能的副本 – Mars
請參見https:// stackoverflow.com/a/19664649/1455243。你的問題與[如何列出名稱空間的函數]不完全相同(https://stackoverflow.com/questions/2747294/how-to-list-the-functions-of-a-namespace/19664649#19664649)但這個答案中的「dir」就是你想要的,它就會出現。 – Mars