Пролог факториальной рекурсии

У меня проблемы с пониманием следующей факториальной программы

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. , никогда не называется? Или в Прологе последняя строка выполняется перед рекурсивным вызовом?

11
задан CyberShot 6 March 2012 в 01:09
поделиться