2010-11-21 4 views

Antwort

5

Interessanterweise gibt es keine Quellverknüpfung für die Funktion in-ns in der Online-Dokumentation und ich konnte diese Funktion auch in core.clj auf github nicht finden.

Es scheint, dass diese spezielle Funktion in Java hardcoded unter clojure Implementierung war.

Siehe diesen Link: https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java

und dieses Stück Code ist Ihr 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

Ja, 'in-ns' eine spezielle Form direkt im Compiler implementiert ist. –

Verwandte Themen