У меня проблемы с пониманием следующей факториальной программы
fact1(0,Result) :-
Result is 1.
fact1(N,Result) :-
N > 0,
N1 is N-1,
fact1(N1,Result1),
Result is Result1*N.
Когда fact1
вызывается вложенным во второй fact1
, не означает ли это, что последний строка, Результат: Результат1*N.
, никогда не называется? Или в Прологе последняя строка выполняется перед рекурсивным вызовом?