Come verificare se un simbolo è risolvibile nello spazio dei nomi corrente?

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

  •  06-07-2019
  •  | 
  •  

Domanda

Voglio verificare se un simbolo è risolvibile nello spazio dei nomi corrente. Qual è il modo canonico per farlo?

È stato utile?

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