. , , . , , . :
likes(bill, X):- prefers(X, wine).
prefers(X, wine). "Bill likes anybody, provided (if) she prefers a wine". likes, , () ( ).
:
?- likes(bill, jane).
true.
?- likes(X, jane).
X = bill; false.
, , , . , , . , , , , ().
, , , , . , ( ); (. . ) . .
.
likes(kate, X):- likes(jane, X), likes(mary, X).
is_happy(X):- likes(X, Y), likes(Y, X).
?- likes(X, john).
X = jane; X = alice; X = mary; X = kate.
?- is_happy(X).
X = john; X = mary; false.
?- is_happy(X), prefers(X, Y).
X = mary, Y = wine; false.
. :
:
o ;
o ;
;
( ).
:
, , ;
+ - * / \ ~ < >:.? @ # $ &, ;
, . , 'mary' , mary, '--->' , --->.
, , .
, .
( , ). , ( . . ). :
likes(john, mary)
beliefs(alice, likes(john, mary))
knows(jane, beliefs(alice, likes(john, mary)))
birth_date(john, date(1980, 6, 15))
+(1, 2)
*(+(1, 2), +(3, 4))