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