2016-12-28 51 views
1

在Prolog中,我的事實如下。在Prolog中使用不等於運算符

flows(godavari,andhra). 
flows(krishna,telangana). 
flows(krishna,andhra). 

我想幀流經安得河名單的查詢,但沒有特蘭伽納。

我試着用

fl(X,Y,Z):- flows(X,Y), flows(X,Z). 

其中列出了所有通過 Y和Z.

河流穿過Y中的河流我想,而不是Z.

回答

1

只需使用not運營商:

fl(X,Y,Z) :- flows(X,Y), not(flows(X,Z)). 
+0

'not/1'已棄用。 '(\ +)/ 2'是ISO「不可證明」的謂詞:'\ +流動(X,Z)'。 – lurker

+0

@lurker它工作正常,但什麼是「不可證明的謂詞」? – Selvaperumal

+0

「not provable」是「not/1」和「(\ +)/ 1」的真正含義。請參閱文檔瞭解更多詳情是的,「不/ 1」將「工作」,但並不是所有Prolog都支持。 '(\ +)/ 1'是ISO標準謂詞。 – lurker