Prolog - Operators
Prolog - Operators
Prolog - Operators
In the following sections, we will see what are the different types of operators in Prolog. Types of the
comparison operators and Arithmetic operators.
We will also see how these are different from any other high level language operators, how they are
syntactically different, and how they are different in their work. Also we will see some practical
demonstration to understand the usage of different operators.
Comparison Operators
Comparison operators are used to compare two equations or states. Following are different
comparison operators −
Operator Meaning
You can see that the ‘=<’ operator, ‘=:=’ operator and ‘=\=’ operators are syntactically different from
other languages. Let us see some practical demonstration to this.
Example
| ?- 1+2=:=2+1.
yes
| ?- 1+2=2+1.
no
| ?- 1+A=B+2.
https://www.tutorialspoint.com/prolog/prolog_operators.htm 1/3
2/22/23, 4:34 PM Prolog - Operators
A = 2
B = 1
yes
| ?- 5<10.
yes
| ?- 5>10.
no
| ?- 10=\=100.
yes
Here we can see 1+2=:=2+1 is returning true, but 1+2=2+1 is returning false. This is because, in the
first case it is checking whether the value of 1 + 2 is same as 2 + 1 or not, and the other one is
checking whether two patterns ‘1+2’ and ‘2+1’ are same or not. As they are not same, it returns no
(false). In the case of 1+A=B+2, A and B are two variables, and they are automatically assigned to
some values that will match the pattern.
Operator Meaning
+ Addition
- Subtraction
* Multiplication
/ Division
** Power
// Integer Division
mod Modulus
Let us see one practical code to understand the usage of these operators.
https://www.tutorialspoint.com/prolog/prolog_operators.htm 2/3
2/22/23, 4:34 PM Prolog - Operators
Program
calc :- X is 100 + 200,write('100 + 200 is '),write(X),nl,
Y is 400 - 150,write('400 - 150 is '),write(Y),nl,
Z is 10 * 300,write('10 * 300 is '),write(Z),nl,
A is 100 / 30,write('100 / 30 is '),write(A),nl,
B is 100 // 30,write('100 // 30 is '),write(B),nl,
C is 100 ** 2,write('100 ** 2 is '),write(C),nl,
D is 100 mod 30,write('100 mod 30 is '),write(D),nl.
Output
| ?- change_directory('D:/TP Prolog/Sample_Codes').
yes
| ?- [op_arith].
compiling D:/TP Prolog/Sample_Codes/op_arith.pl for byte code...
D:/TP Prolog/Sample_Codes/op_arith.pl compiled, 6 lines read - 2390 bytes written, 11 ms
yes
| ?- calc.
100 + 200 is 300
400 - 150 is 250
10 * 300 is 3000
100 / 30 is 3.3333333333333335
100 // 30 is 3
100 ** 2 is 10000.0
100 mod 30 is 10
yes
| ?-
https://www.tutorialspoint.com/prolog/prolog_operators.htm 3/3