問題タブ [tail-call-optimization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - テールコール最適化とは?
非常に簡単に言えば、テールコール最適化とは何ですか?
より具体的には、適用できる小さなコード スニペットと、適用できない小さなコード スニペットと、その理由の説明を教えてください。
c - DrScheme ではテール コールの最適化はどのように実装されていますか?
トランポリンは TCO を実装する効果のない方法だと聞いたことがあります。DrScheme(技術的にはPLAIスキーム)はどのようにそれを行うのですか?それは「正しい」方法で実行されますか (つまり、スタックとトランポリンを通過するのではなく、テール コールに直接分岐するアセンブリ コードを生成します)?
programming-languages - テール コールの最適化にガベージ コレクションが必要なのはなぜですか?
末尾呼び出しの最適化にガベージ コレクションが必要なのはなぜですか? テールコールを実行したい関数にメモリを割り当てた場合、テールコールを実行してそのメモリを取り戻す方法がないからですか? (したがって、末尾呼び出しの後にメモリを再利用できるように、スタックを保存する必要があります。)
java - JVM 実装の違い
JVM 実装の違いはどこですか (ライセンスを除く)? すべての JVM は Generic 処理のために Type Erasure を実装していますか?
次の違いはどこにありますか。
- JRockit
- IBM JVM
- SUN JVM
- JDKを開く
- ブラックダウン
- カフェ
..... それらの 1 つに Tail-Call-Optimization を適用しますか?
f# - F# で関数が末尾再帰的かどうかを確認する方法
私は次の関数を書きました:
F# コンパイラがループに変換したかどうかを知るにはどうすればよいですか? Reflector を使用せずに調べる方法はありますか (Reflector の経験がなく、C# も知りません)。
編集:また、内部関数を使用せずに末尾再帰関数を作成することは可能ですか?それともループが存在する必要がありますか?
また、F# std lib には、特定の関数を何度も実行する関数があり、そのたびに最後の出力が入力として与えられますか? 文字列があるとしましょう。文字列に対して関数を実行し、結果の文字列に対して再度実行します...
python - テールコール最適化の重要性と、Python がそれを必要とする理由を説明してください
どうやら、Python にテール コールの最適化が必要かどうかについて大騒ぎになっているようです。これは、誰かが Guido に SICP のコピーを送ったときに頭に浮かびました。私はグイドと同じ船に乗っています。テールコール最適化の概念を理解しています。Python が本当にそれを必要とする理由が思いつきません。
これを理解しやすくするために、TCO を使用して大幅に簡素化できるコードのスニペットを教えてもらえますか?
python - テールコールの最適化を実装するために、jvm は何を犠牲にする必要がありますか?
テールコールの最適化がないという制限 (clojure 実装ではなく jvm の制限) を除けば、clojure 実装は優れていると人々は言います。
http://lambda-the-ultimate.org/node/2547
TCO を Python に実装すると犠牲になると言われてきました
- スタック トレース ダンプ、および
- デバッグの規則性。
テールコール最適化の重要性と、Python がそれを必要とする理由を説明してください
TCO の jvm 実装のために同じ犠牲を払わなければならないでしょうか? 他に何かを犠牲にする必要がありますか?
iphone - Xcode for iPhoneは末尾呼び出しの再帰を排除しますか?
XcodeはiPhoneで末尾呼び出しの最適化をサポートしていますか?
oracle - PL/SQL はテール コールの最適化を実行しますか?
私は言語にかなり慣れていないので、末尾呼び出しが最適化されているかどうか疑問に思っていました。他の言語では、マシンコードまたは中間表現を調べて自分で理解することができましたが、PL/SQL でそれを行う方法がわかりません。
前もって感謝します。
language-agnostic - 末尾再帰の削除とは
Steve Yegge がブログ投稿で言及しましたが、私にはそれが何を意味するのかわかりません。
テールコールの最適化と同じですか?