質問
現在のネームスペースでシンボルが解決可能かどうかを確認したい。これを行うための標準的な方法は何ですか?
解決
もう一度APIドキュメントをふるい分けた後、適切な関数が何であるかを見つけました:
; 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)
他のヒント
このページをご覧ください。例
(ns-map *ns*)
は、現在のネームスペースのバインディングのマップを提供します。このマップを調べて、シンボルがマップのキーであるかどうかを判断できます。
(defn resolvable? [sym]
(contains? (ns-map *ns*) sym))
これが標準の方法かどうかわかりません。
所属していません StackOverflow