2016-12-28 12 views
1

私の事実は以下の通りです。プロローグではない演算子を使用する

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

私はアンドラプラ経由ではなく、テランガーナ州を流れる河川のリストのクエリをフレームにしたいです。

は、私はすべての川はYを通過 YとZの

を通過川私が欲しいとないZ.

答えて

1

だけで使用がリストされ

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

てみましたnotオペレーター:

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

'not/1'は推奨されていません。 '(\ +)/ 2'はISOの「証明できない」述語です:' \ + flows(X、Z) '。 – lurker

+0

@lurkerうまく動作しますが、「証明できない述語」は何ですか? – Selvaperumal

+0

"not provable"は 'not/1'と'(\ +)/ 1'が本当に意味するものです。詳細は、ドキュメントを参照してください。はい、「not/1」は「動作します」が、すべてのPrologでサポートされているわけではありません。 '(\ +)/ 1'はISO標準述語です。 – lurker

関連する問題