2009-09-11 2 views

답변

4

은 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) 
+1

언 바운드 인 심볼과 nil에 바인딩 된 심볼의 차이점을 어떻게 알 수 있습니까? – Jonas

+1

심볼에 의해 명명 된 Var 만 nil에 바인딩 될 수 있습니다. 심볼 자체는 현재 네임 스페이스에서 Var의 이름을 지정하거나 해석 할 수 있으며 그렇지 않으면 resolve는 nil을 반환합니다. –

3

this page을 살펴보십시오. 예를 들어

은 현재 네임 스페이스의 바인딩 맵을 제공합니다. 당신이이 정식 방법입니다 경우

(defn resolvable? [sym] 
    (contains? (ns-map *ns*) sym)) 

나도 몰라, 당신의 기호는지도의 핵심 인 경우 결정이지도를 검사 할 수 있습니다.

+0

'(? 포함 (NS-지도 * NS *) 키)'같은 작업을 수행, 아마도 더 빠를 것입니다. –

+0

사실, 편집하겠습니다. 감사합니다 – Jonas