問題タブ [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.

0 投票する
10 に答える
208288 参照

algorithm - テールコール最適化とは?

非常に簡単に言えば、テールコール最適化とは何ですか?

より具体的には、適用できる小さなコード スニペットと、適用できない小さなコード スニペットと、その理由の説明を教えてください。

0 投票する
3 に答える
697 参照

c - DrScheme ではテール コールの最適化はどのように実装されていますか?

トランポリンは TCO を実装する効果のない方法だと聞いたことがあります。DrScheme(技術的にはPLAIスキーム)はどのようにそれを行うのですか?それは「正しい」方法で実行されますか (つまり、スタックとトランポリンを通過するのではなく、テール コールに直接分岐するアセンブリ コードを生成します)?

0 投票する
4 に答える
698 参照

programming-languages - テール コールの最適化にガベージ コレクションが必要なのはなぜですか?

末尾呼び出しの最適化にガベージ コレクションが必要なのはなぜですか? テールコールを実行したい関数にメモリを割り当てた場合、テールコールを実行してそのメモリを取り戻す方法がないからですか? (したがって、末尾呼び出しの後にメモリを再利用できるように、スタックを保存する必要があります。)

0 投票する
8 に答える
11576 参照

java - JVM 実装の違い

JVM 実装の違いはどこですか (ライセンスを除く)? すべての JVM は Generic 処理のために Type Erasure を実装していますか?

次の違いはどこにありますか。

  • JRockit
  • IBM JVM
  • SUN JVM
  • JDKを開く
  • ブラックダウン
  • カフェ

..... それらの 1 つに Tail-Call-Optimization を適用しますか?

0 投票する
2 に答える
2934 参照

f# - F# で関数が末尾再帰的かどうかを確認する方法

私は次の関数を書きました:

F# コンパイラがループに変換したかどうかを知るにはどうすればよいですか? Reflector を使用せずに調べる方法はありますか (Reflector の経験がなく、C# も知りません)。

編集:また、内部関数を使用せずに末尾再帰関数を作成することは可能ですか?それともループが存在する必要がありますか?

また、F# std lib には、特定の関数を何度も実行する関数があり、そのたびに最後の出力が入力として与えられますか? 文字列があるとしましょう。文字列に対して関数を実行し、結果の文字列に対して再度実行します...

0 投票する
4 に答える
1630 参照

python - テールコール最適化の重要性と、Python がそれを必要とする理由を説明してください

どうやら、Python にテール コールの最適化が必要かどうかについて大騒ぎになっているようです。これは、誰かが Guido に SICP のコピーを送ったときに頭に浮かびました。私はグイドと同じ船に乗っています。テールコール最適化の概念を理解しています。Python が本当にそれを必要とする理由が思いつきません。

これを理解しやすくするために、TCO を使用して大幅に簡素化できるコードのスニペットを教えてもらえますか?

0 投票する
3 に答える
369 参照

python - テールコールの最適化を実装するために、jvm は何を犠牲にする必要がありますか?

テールコールの最適化がないという制限 (clojure 実装ではなく jvm の制限) を除けば、clojure 実装は優れていると人々は言います。

http://lambda-the-ultimate.org/node/2547

TCO を Python に実装すると犠牲になると言われてきました

  • スタック トレース ダンプ、および
  • デバッグの規則性。

テールコール最適化の重要性と、Python がそれを必要とする理由を説明してください

TCO の jvm 実装のために同じ犠牲を払わなければならないでしょうか? 他に何かを犠牲にする必要がありますか?

0 投票する
2 に答える
433 参照

iphone - Xcode for iPhoneは末尾呼び出しの再帰を排除しますか?

XcodeはiPhoneで末尾呼び出しの最適化をサポートしていますか?

0 投票する
1 に答える
787 参照

oracle - PL/SQL はテール コールの最適化を実行しますか?

私は言語にかなり慣れていないので、末尾呼び出しが最適化されているかどうか疑問に思っていました。他の言語では、マシンコードまたは中間表現を調べて自分で理解することができましたが、PL/SQL でそれを行う方法がわかりません。

前もって感謝します。

0 投票する
2 に答える
10512 参照

language-agnostic - 末尾再帰の削除とは

Steve Yegge がブログ投稿で言及しましたが、私にはそれが何を意味するのかわかりません。

テールコールの最適化と同じですか?