私はこのシナリオを持っています:再帰的なプロシージャ(または関数)は次のように呼び出されます
{DoSomething Data C}
Cは最終結果を格納する変数であり、関数プロトタイプは次のとおりです。
proc {DoSomething Data N}
%..
%..
{DoSomething Data M}
N = 1 + M
end
Nは、最終結果も格納する必要がある変数ですが、プロシージャのローカルスコープにあります。
さて、最初に、プロシージャが呼び出されると、SASは次のようになると言われました。
CとNの間の等価セットに注意してください(両方とも今のところバインドされていません)
次に、すべての再帰が完了した後、SASは
CとNの両方が値(6)にバインドされていることに注意してください
手順を終了した後、SASは
N変数を破棄するためです。そして、それは大丈夫です。
私の質問は、プロシージャの再帰中に何が起こるかということです。C変数は部分値構造1+Mにリンクしていますか?そして次にMが1+M2にリンクするとき?