Io di solito chiamo
(keys (ns-publics 'foo))
per elencare Vars esportato dallo spazio dei nomi foo
; per esempio. per clojure.contrib.monads
restituisce
(defmonad censor m-when-not m+write+m maybe-m maybe-t ...)
(i ...
sta per un bel po 'di più).
Più in generale, c'è un sacco di funzioni il cui nome inizia in ns-
quale lista Vars dal namespace, con determinati criteri aggiuntivi collegati:
ns-map
- la funzione più generale di tutti, restituisce una mappa digitato per simboli (in realtà simboli non classificati nello spazio dei nomi), dove il valore corrispondente a ciascun simbolo è il Var o la classe a cui il simbolo si risolve nello spazio dei nomi specificato.
ns-interns
- come ns-map
, ma include solo il Vars internati in un determinato spazio dei nomi (al contrario di Vars da altri spazi dei nomi che sono accessibili dalla data namespace a causa di una chiamata o di use
refer
o il rinvio implicito Vars . clojure.core
ns-publics
- come ns-interns
, ma include solo il Vars non privato
ns-imports
-. come ns-map
, ma include solo le voci wh i valori di ose corrispondono alle classi Java.
C'è anche ns-aliases
che elenca i simboli che possono essere utilizzati come alias di stenografia quando si parla di Vars da altri nomi; per esempio. se si chiama (require '[clojure.contrib.math :as math])
, ns-aliases
includerà una voce con la chiave di math
(il simbolo), il cui valore sarà lo spazio dei nomi effettivo clojure.contrib.math
. Queste mappature non sono incluse nella mappa restituita da ns-map
.
fonte
2010-04-30 21:07:01
La disponibilità di queste funzioni e la funzione 'doc' sono un motivo per cui fornire documentazione per vecchie librerie e altri pacchetti non è una priorità particolarmente elevata? –