問題タブ [tail-call]
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.
tail-recursion - 末尾呼び出しでは、プログラミング言語は関数呼び出しが何に評価されるかをどのように知るのでしょうか?
質問のタイトルが改善される可能性があります。私が話す内容に特定の名前がある場合はお知らせください。
これも特定の言語向けではありません。私が使用したすべての言語は、関数呼び出しを式として同じように扱います。
だから私は再帰と末尾呼び出しについて読んでいたので、このコードをC++で書きました
もちろん、基本ケースは であるため、test(num)
常に0
ifと評価されます。num > 0
n = 0
しかし、なぜ?言語は何を返す必要があるかをどのように認識しますか? test(n - 1)
何を評価するべきかをどのように知るのですか?
編集;
数値の階乗を取得する再帰的な方法を含めました。C++ (または任意の言語) は、何を乗算するかをどのように知るのnum
でしょうか?