2014-03-29 149 views
0

我在學習Prolog,只想檢查自己: 我覺得這個問題很基礎,但我只是開始。prolog編寫規則

father(X,Y) 
mother(X,Y) 
male(X) 
female(X) 
parent(X,Y) 
diff(X,Y) 

爲is_mother(X)寫一個子句是否正確?

is_mother(X):- female(X), parent(X,Y). 

謝謝

+0

是否曾經在一些數據和測試呢? – DrLivingston

+0

是的,這是正確的 –

回答

0
is_mother(X) :- female(X), parent(X,Y). 

這在技術上是正確的,因爲它說,X是一個母親,如果X是女性,X是有人(Y)的母公司。在這個定義中,由於您沒有使用它的值,因此Prolog會給您一個關於Y是「單身」變量的警告。爲了避免這種情況的警告,你可以使用_或與_開頭的名稱來表示一個變量,其價值,你不關心和前導不會警告你不使用:

is_mother(X) :- female(X), parent(X,_). 

條款female(X)parent(X,_)假定有要麼謂詞female(X)parent(X,Y)或你有事實,如(例如)female(sally).其中sally是一個「原子」(在Prolog中一個恆定),和/或parent(sally, tom).