2016-12-17 4 views
0

キロバイトYがXの半妹であるためにはProlog述語half_sister_of(X、Y)の規則?

parent_of(john,ann). 
parent_of(mary,ann). 
parent_of(mary,sylvia). 
parent_of(brian,sylvia). 

female(sylvia). 
female(ann). 


?-Half_sister_of(X,Y). 
X=ann 
X=sylvia ; 

X=sylvia 
X=ann 
+1

あなたが表示する例は無効で、エラーが発生します。 Prologの述部は大文字で始めることはできません。あなたは半分の妹が何であるか考えなければなりません。半姉妹を定義することができれば(言葉で)、それを反映するためにProlog述語を記述します。 – lurker

答えて

0
half_sister_of(X,Y) :- 
    parent_of(A,X), 
    parent_of(A,Y), 
    parent_of(B,X), 
    parent_of(C,Y), 
    not(A = B), 
    not(A = C), 
    not(B = C), 
    female(Y). 

であり、それらは片方の親(A)を共有し、他の親(B及びC)を共有してはならない、とYは女性でなければなりません。