2010-11-21 2 views

답변

5

흥미롭게도 온라인 문서에는 in-ns 기능을위한 소스 링크가 없으며 github의 core.clj에서도이 기능을 찾을 수 없습니다.

이 특정 기능은 클로저 구현 아래 자바에서 하드 코딩 된 것으로 보입니다.

이 링크를 참조하십시오 : https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java

코드의 조각을 당신의 in-ns입니다 :

final static IFn inNamespace = new AFn(){ 
public Object invoke(Object arg1) throws Exception{ 
    Symbol nsname = (Symbol) arg1; 
    Namespace ns = Namespace.findOrCreate(nsname); 
    CURRENT_NS.set(ns); 
    return ns; 
} 
}; 
+1

예는,'에서-ns' 컴파일러에 직접 구현 된 특별한 형태입니다. –

관련 문제