1
たとえば、名前空間シンボルがある場合。 'clojure.core
またはクローゼアソースファイルへのパスネームスペースに新規のシンボルをすべて取得するにはどうすればいいですか?つまり、:refer
ではないか、別のネームスペースで使用されていませんか?Clojureネームスペース内のすべての新しいシンボルを取得する方法
これらのシンボルは、最上位レベルdef
(およびdefn
)から来るだけでなく、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