プロローグの初心者はこちら。Prologのナレッジベースからユニークな結果を返すにはどうすればよいですか?
のは、私は食べ物が含まれているプロローグ知識ベースを持っており、それは例えば、価格だとしましょう:
food(banana,99).
など
私がある場合はtrueを返します述語を書くしようとしています同じ価格を持つ知識ベース内の2つ以上のアイテム。私は(それが同じを見つけることだという問題が何であるかを理解して価格Xとデータベースで唯一つの項目がある場合
multiple(X) :- food(_ ,X), food(_ ,X).
はtrueを返します:私は遭遇しています問題は、クエリは、私が書いたということです項目を2回返してtrueを返します)、私は2つ以上のクエリを書く方法を理解していませんユニーク食品からの項目。
次のように私は、「ユニークな」ルールを書いてみました:
multiple(X) :- food(Y,X), food(Z,X), unique(Y,Z).
unique(Y,Z) :- Y /= Z
しかし、それは動作するようには思えません。
ありがとうございました。
ああ、それはそのような小さなものだったことを知っていたはずです。私はそれが今働くと思う、ありがとう。 – dmallory42