2012-05-15 34 views
0

我想在Prolog中建立關係模型,但姐妹關係原來是失敗的。我想知道這是一個好的解決方案。我是初學者,這是我的第一個程序,歡迎任何幫助。序言:妹妹/兄弟關係

man(adam). 
man(peter). 
man(paul). 
man(carlos). 
man(willem). 

woman(marry). 
woman(eve). 
woman(greta). 
woman(lisa). 

parent(adam, peter). 
parent(eve, peter). 
parent(adam, paul). 
parent(marry, paul). 
parent(adam, willem). 
parent(adam, lisa). 
parent(eve, willem). 
parent(eve, lisa). 
parent(greta, adam). 
parent(carlos, adam). 

father(F, C) :- 
    man(F), 
    parent(F, C). 

mother(M,C) :- 
    woman(M), 
    parent(M, C). 

grandparent(P, C):- 
    parent(P, K), 
    parent(K, C). 

sister(x,y) :- 
    woman(x), 
    mother(m, x), 
    father(f, x), 
    mother(m, y), 
    father(f, y). 
+0

作業也許? – keyser

+0

是的,是的。相當酷的語言! –

+0

是的,它是:p模式匹配是我在序言中最酷的任務(例如:解決sudokus)。此外,添加「作業」標籤 – keyser

回答

1

您需要對sister\2謂詞中的變量使用大寫字母。在你的代碼中你有小寫字母,它們是原子,所以這總是會失敗,除非你有人叫x,y,fm

此外,添加X \= Y,以防止X是她自己的妹妹。

+0

會的權利,謝謝你的頭!它工作正常 –