2010-11-21 56 views

回答

5

有趣的是,在線文檔中沒有in-ns函數的源代碼鏈接,我也無法在github上的core.clj中找到該函數。

看來這個特殊的函數在clojure實現下在Java中是硬編碼的。

請參閱此鏈接: 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''是直​​接在編譯器實現的一種特殊形式。 – 2010-11-21 15:49:38

相關問題