Prolog Recursion Examples and Functions
Prolog Recursion Examples and Functions
[Link] division
division(X,Y,0) :- X<Y.
division(X,Y,Z) :- X>=Y,
Y>0,
XmenosY is X-Y,
division(XminusY,Y,Z1)
Z is Z1+1.
2-Factorial of a Number
fact(0,1).
fact(N,F) :- N>0,
Nmenos1 is N-1,
fact(Nminus1, F1),
F is N*F1.
3.-FIBONACCI Series
fibo(0,0).
fibo(1,1).
fibo(X,Z) :- X>1,
Xmenos1 is X-1,
Xmenos2 is X-2,
fibo(Xminus1,Z1)
fibo(Xminus2, Z2)
Z is Z1+Z2.
4.-Power of a number X raised to the power Y.
power(X,0,1).
power(X,Y,Z) :- X>0,
Ymenos1 is Y - 1,
power(X,Yminus1,Z1)
Z is X*Z1.
5.- Recursive multiplication.
product(0,X,0).
product(X,Y,Z) :- X>0,
Xmenos1 is X-1
product(Xminus1,Y,Z1)
Z is Y + Z1.
6.- Recursive Subtraction
rest(X, 0, X).
subtract(X, Y, Z) :- X > Y,
Y>0,
Yminus1 is Y-1,
resta(X,Y menos 1,Z1)
Z is Z1-1.
7.-Recursive Sum
sum(1,1).
sum(N, SUM) :- N > 1, M is N - 1, sum(M, SUMR), SUM is (SUMR + N).
8.-Sum Digits
summing(X,X) :- X is equal to 0.
add(X, Y) :- X > 0,
Xmodulo10 is X mod 10,
Xdivision10 is X // 10,
sumardig(Xdivision10,Z)
Y is Z + X modulo 10.
9.-Check if an element belongs to a list
belongs(X, [X|_]) :- !.
belongs(X, [_|R]) :- belongs(X, R).