Wie überprüfe ich, ob ein Symbol im aktuellen Namespace auflösbar ist?

StackOverflow https://stackoverflow.com/questions/1412551

  •  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?

War es hilfreich?

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
scroll top