2012-05-26 28 views
21

El source for clojure.core parece asumir la preexistencia de fn*. ¿Dónde está esto definido? ¿Qué más se necesita para bootstrap (sobre los tipos de Java existentes)? ¿Cómo está todo armado?¿Qué es fn * y cómo se inicia Clojure?

¿Quizás esto ya se haya preguntado? Estoy teniendo problemas para obtener buenos resultados de búsqueda para fn*.

actualización: Cambié "bootstrap sí mismo" a "bootstrap" en el título, porque no quería dar a entender que Clojure era autohospedado.

Respuesta

11

en src/jvm/clojure/lang/46 Compiler.java línea:

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

fn * aplicar por compilador clojure, como otros en forma especial, supongo.

Actualización: en el método analyzeSeq, 6452 a 6.353 line:

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

favor echa un vistazo a la clase FnExpr implementar el código.

Cuestiones relacionadas