Wie überprüfe ich, ob ein Symbol im aktuellen Namespace auflösbar ist?
-
06-07-2019 - |
Frage
Ich möchte überprüfen, ob ein Symbol im aktuellen Namespace auflösbar ist. Wie ist der kanonische Weg, dies zu tun?
Lösung
Nachdem ich die API -Dokumente noch einmal durchgesehen habe, bin ich auf die geeignete Funktion gestoßen:
; Returns the var or Class to which the symbol
; will be resolved in the current namespace, else nil.
(resolve 'foo)
; see also:
(ns-resolve *a-namespace* 'foo)
Andere Tipps
Sich ansehen diese Seite. Zum Beispiel
(ns-map *ns*)
Sie erhalten eine Karte der Bindungen im aktuellen Namespace. Sie können diese Karte untersuchen, um zu entscheiden, ob Ihr Symbol ein Schlüssel in der Karte ist.
(defn resolvable? [sym]
(contains? (ns-map *ns*) sym))
Ich weiß nicht, ob dies das ist kanonisch Weg.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow