Come verificare se un simbolo è risolvibile nello spazio dei nomi corrente?
-
06-07-2019 - |
Domanda
Voglio verificare se un simbolo è risolvibile nello spazio dei nomi corrente. Qual è il modo canonico per farlo?
Soluzione
Dopo aver setacciato ancora una volta i documenti API, mi sono imbattuto in quella che potrebbe essere la funzione appropriata:
; 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)
Altri suggerimenti
Dai un'occhiata a questa pagina . Ad esempio
(ns-map *ns*)
ti fornirà una mappa dei collegamenti nello spazio dei nomi corrente. Puoi esaminare questa mappa per decidere se il tuo simbolo è una chiave nella mappa,
(defn resolvable? [sym]
(contains? (ns-map *ns*) sym))
Non so se questo è il modo canonico .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow