Basic Operators
To manipulate the values we learned from the facts part, now we need to learn some fundamental basic operators to do the job.
Comparison Operators
Symbol | Meaning |
---|---|
== | Equals, assignment |
< | Less than |
<= | Less than or equal |
> | Greater than |
>= | Greater than or equal |
!= | Not equal |
Binary Operators
Symbol | Meaning |
---|---|
+ | Add |
- | Subtract |
* | Multiply |
/ | Divide |
% | Remainder of integer division |
^ | Raise to power |
++ | String concatenation |
TIP
Logic Programming is declarative, and thus there is no difference between equality and assignment, operator ==
stands for both.
Example 1
Grandparent(a, d) :- Parent(a, b), Parent(c, d), b == c;
Example 2
Grandparent(x, y) :-
Parent(a, b), Parent(b, c), x == a, y == c;
Assignment can be used to store results of intermediate computation. Example: Compute volumes and mass of metal cubes.
Example 3
MetalCube("cube1", 10, 15);
MetalCube("cube2", 20, 8);
CubeInfo(cube_id, volume, mass) :-
MetalCube(cube_id, side, density),
volume == side * side * side,
mass == volume * density;