再帰呼び出しが容易に実装されないか望まれない設定で、既存のコードを書き直しています。 (と知っている必要がある場合、Fortran 77で)私は必要な呼び出しを追跡するためにスタックを最初から作ることを考えましたが、これはクルージングのようです。再帰は深くない。 (私は、Fortran 77が動的配列のサイジングをサポートしているとは確信していません)再帰呼び出しを使用せずに再帰関数を書き換える
明らかに再帰的な関数をどのようにしてスタックにスペースを浪費することなく非再帰的に書き直す方法に関する他の提案はありますか?
多くのおかげで、 旧MCST
分岐しない場合は、通常、単純なループに書き換えることができます。分岐する場合、通常はスタックが必要です。 – CodesInChaos
@CodeInChaos:分岐しない再帰関数は、定義によって決して戻りません。 –
私は単語の枝を誤用していると思います。私はそれ自身を複数回呼び出すことを意味するので、コールのグラフはブランチを持つツリーになります。それは私の経験であり、必ずしも真実ではありません。 – CodesInChaos