. : 1 + 2 , +(1, 2), (1 + 2) * 3 , *(+(1, 2), 3).
, . :
( , ):
o fy o o a o(o(a)); : ( );
o fx o o a .
( , ):
o yfx a o b o c o(o(a, b), c); : +, (), . .;
o xfy a o b o c o(a, o(b, c)); : ** ( ).
o xfx a o b o c ; : <, > . .
( , ):
o yf a o o o(o(a)).
o xf a o o .
. , .
= . =(X, Y) ( X = Y) , X Y. :
X , Y ( ), X Y, X Y. , Y , ;
?- X = mary.
X = mary.
?- mary = X.
X = mary.
?- X = likes(john, mary).
X = likes(john, mary).
?- X = likes(john, _).
X = likes(john, _G538).
?- X = 10.
X = 10.
?- X = 10+20.
X = 10+20.
X, Y , X Y, . , - , ;
?- X = Y.
X = Y.
;
?- mary = mary.
true.
?- mary = john.
false.
?- X = mary, X = john.
false.
?- X = mary, Y = john, X = Y.
false.
?- X = Y, X = john, Y = mary.
false.
?- 10 = 10.
true.
?- 10 = 3 + 7.
false.
, .
?- likes(mary, john) = likes(mary, john).
true.
?- likes(mary, john) = likes(john, mary).
false.
?- likes(X, john) = likes(mary, john).
X = mary.
?- likes(X, john) = likes(mary, Y).
X = mary, Y = john.
?- likes(X, john) = likes(Y, Z).
X = Y, Z = john.
?- beliefs(X, Y) = beliefs(alice, likes(john, mary)).
X = alice, Y = likes(john, mary).
?- knows(jane, X) = knows(jane, beliefs(jane, X)).
X = beliefs(jane, X).
?- J = john, M = mary, A = alice, L = likes(J, M), B = beliefs(A, L).
J = john, M = mary, A = alice, L = likes(john, mary), B = beliefs(alice, likes(john, mary)).
?- X = knows(jane, X), X = knows(_, knows(_, knows(_, Y))).
X = Y, Y = knows(jane, Y).
?- 3 + 7 = 3 + 7.
true.
X = 3 + 7, Y + Z = X.
X = 3 + 7, Y = 3, Z = 7.