Clojure について読んでいて、Java が現在のバージョンでテール コールをサポートしていないという議論を見つけました。JVM でテール コールをシミュレートするために人々が例外をスローしていました。それで、これはC#のテールコール、同じ問題について疑問に思いましたか?
Robert Gould
質問する
655 次
2 に答える
6
CLR コードは、場合によっては呼び出しを終了しますが、そうでない場合もあります。これは JIT に依存します。
David Broman のブログ エントリとShri Bordeのブログ エントリも参照してください。
C# コンパイラは現在、テール コール IL を発行しませんが、JIT がとにかく発行することがあります。
于 2008-12-09T15:12:12.780 に答える
1
場合によっては、JVM で末尾再帰が可能です。たとえば、Scala は基本的な末尾再帰の効率的な実装を求めています (このブログ投稿を参照してください。Language Trivia #8を探してください。今見つけた引用のみを参照してください)。Invoke Dynamic や非 Java 言語に特化したその他の機能と同じように、さらに多くのサポートを追加することについての話と調査があります。
The Java Posse では、この種の問題についての話もよくあります。
はい、これがあなたの質問に対する答えではないことはわかっています...
于 2008-12-09T15:30:52.743 に答える