. : , Prolog; ; Prolog . - , . :
?- suspect(Killer,mrBoddy).
Killer = profPlum ;
ERROR: Out of local stack
. . , . , .
- , false. false, , . , (, , ). 1. , , failure-slice:
?- suspect(Killer,mrBoddy), false.
married(profPlum, msGreen) :- false.
married(X,Y) :- married(X,Y), false, married(Y,X).
hate(X,Y) :- married(X,Spouse), false, affair(Y,Spouse).
suspect(X,Y):- hate(X,Y), false.
suspect(X,Y):- false, greed(X,Y).
, . ,
married(X,Y) :- married(X,Y), married(Y,X).
.
, . ? , :- . , , , , , . :
X Y Y X
, X Y.
, . , . , — . , married(profPlum, msGreen) , married(msGreen, profPlum) . , , .
, , husband_wife/2
married(M,F) :- husband_wife(M,F).
married(F,M) :- husband_wife(M,F).
, . Prolog , . . 2
:
1 . , not/1 (\+)/1.
2 @larsmans.
>