У меня есть такой сценарий: рекурсивная процедура (или функция) вызывается как
{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? А потом в следующий раз М ссылки на 1 + М2?