ตัวอย่าง source code prolog


Rules

sum(N, S) :- sum(N, S, 0, 1).
sum(N, S, Sum, M) :-
M =< N,
M1 is M + 1,
Sum1 is Sum + M,
sum(N, S, Sum1, M1).
sum(_, S, S, _) . %%terminating clause when
****************************************************

Consult
:?-sum(5,X) % 5+4+3+2+1 (fibonacci number)
X=5

Step
sum(5,X):- sum(5,X,0,1).
1=<5,
M1is 1+1
Sum1 is 0+1

sum(5,X):- sum(5,X,1,2).
2=<5,
M1is 2+1
Sum1 is 1+2

sum(5,X):- sum(5,X,3,3).
3=<5,
M1is 3+1
Sum1 is 3+3

sum(5,X):- sum(5,X,6,4).
4=<5,
M1is 4+1
Sum1 is 4+6

sum(5,X):- sum(5,X,10,5).
5=<5,
M1is 5+1
Sum1 is 10+5

sum(5,X):- sum(5,X,15,6).