2012-05-26 8 views
21

source for clojure.corefn* के पूर्व-अस्तित्व को मानता प्रतीत होता है। यह कहां परिभाषित किया गया है? बूटस्ट्रैप (मौजूदा जावा प्रकारों पर) के लिए और क्या चाहिए? यह सब एक साथ कैसे रखा जाता है?एफएन * क्या है और क्लोजर बूटस्ट्रैप कैसा है?

शायद यह पहले से ही पूछा जा चुका है? मुझे fn* के लिए अच्छे खोज परिणाम प्राप्त करने में कठिनाई हो रही है।

अपडेट: शीर्षक में "बूटस्ट्रैप" को "बूटस्ट्रैप" में बदल दिया गया, क्योंकि मैं यह नहीं कहना चाहता था कि क्लोजर स्वयं-होस्टिंग था।

उत्तर

11
src/JVM/clojure/लैंग/Compiler.java 46 लाइन में

:

static final Symbol FN = Symbol.intern("fn*"); 

fn * clojure संकलक द्वारा लागू, दूसरों के रूप में विशेष रूप है, मुझे लगता है कि।

अद्यतन: analyzeSeq विधि में, 6452-6353 लाइन:

if(op.equals(FN)) 
     return FnExpr.parse(context, form, name); 

FnExpr वर्ग की जाँच कृपया कोड को लागू।

संबंधित मुद्दे