clojure.coreのソースは、の存在を前提としているようですfn*
。これはどこで定義されていますか?(既存のJavaタイプよりも)ブートストラップには他に何が必要ですか?それはどのようにまとめられていますか?
多分これはすでに尋ねられていますか?の良い検索結果を得るのに苦労していfn*
ます。
更新: Clojureがセルフホスティングであることを暗示したくなかったため、タイトルの「bootstrap自体」を「bootstrap」に変更しました。
clojure.coreのソースは、の存在を前提としているようですfn*
。これはどこで定義されていますか?(既存のJavaタイプよりも)ブートストラップには他に何が必要ですか?それはどのようにまとめられていますか?
多分これはすでに尋ねられていますか?の良い検索結果を得るのに苦労していfn*
ます。
更新: Clojureがセルフホスティングであることを暗示したくなかったため、タイトルの「bootstrap自体」を「bootstrap」に変更しました。
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クラスの実装コードを確認してください。