23

clojure.coreのソースは、の存在を前提としているようですfn*。これはどこで定義されていますか?(既存のJavaタイプよりも)ブートストラップには他に何が必要ですか?それはどのようにまとめられていますか?

多分これはすでに尋ねられていますか?の良い検索結果を得るのに苦労していfn*ます。

更新: Clojureがセルフホスティングであることを暗示したくなかったため、タイトルの「bootstrap自体」を「bootstrap」に変更しました。

4

1 に答える 1

12

src / jvm / clojure / lang /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クラスの実装コードを確認してください。

于 2012-05-26T15:34:12.253 に答える