suma_do(1, 1) :- !.
suma_do(N, Razem) :-
N1 is N - 1,
suma_do(N1, Razem1),
Razem is Razem1 + N.
Jest to przykład z książki Prolog. Programowanie (str. 81). Wiem, że odcięcie zmniejsza zakres przestrzeń przeszukiwań, co skutkuje lepszym wykorzystaniem czasu procesora i pamięci komputera, ale w tym przypadku nie rozumiem z czego konkretnie wynikają te korzyści zastosowania odcięcia.
Czy mógłby to ktoś wyjaśnić w miarę przyjazny sposób?