Wenn ich ein Namespacesymbol z. 'clojure.core
oder ein Pfad zu einer Clojure-Quelldatei Wie kann ich alle Symbole erhalten, die neu im Namespace sind, d. H. Nicht :refer
-ed oder in einem anderen Namespace interniert?So erhalten Sie alle neuen Symbole in einem Clojure-Namespace
Diese Symbole würden von der obersten Ebene def
s (und defn
s) aber auch innerhalb let
Bindungen und so kommen. Mein Ziel ist es, einen Namespace zu analysieren und den Baum zu durchlaufen, um auf bestimmten Symbolen basierend auf einem Prädikat einen Find-Replace durchzuführen.
Edit: Ich bin nicht nur auf der Suche nach Top-Level-Vars, ich suche nach einem Symbol. Wenn es eine Funktion mit einer Bindung gibt, bin ich auf der Suche nach einem Symbol, das gebunden ist.
Sie werden wahrscheinlich eher verwenden möchten clojure.tools.analyzer als sich um den Baum zu Fuß. Es sollte Ihnen in der Lage sein, Ihnen zu sagen, wo Symbole als Teil des Baumspaziergangs sowieso herkommen, so dass Sie diesen vorbereitenden Schritt nicht brauchen, um "neue" Symbole zu sammeln. – amalloy
Mögliches Duplikat von [Wie listet man die Funktionen eines Namensraums auf?] (Https://stackoverflow.com/questions/2747294/how-to-list-the-functions-of-a-namespace) – Mars
Siehe https: // stackoverflow.com/a/19664649/1455243. Ihre Frage nicht genau das gleiche wie [Funktionen eines Namespace auflisten] (https://stackoverflow.com/questions/2747294/how-to-list-the-functions-of-a-namespace/19664649#19664649) aber 'dir' in dieser Antwort tut, was Sie wollen, so scheint es. – Mars