これは非常に基本的なことだと思いますが、Prolog チュートリアルからこれを解決できなかったので、ここの誰かが私の問題を解決するのを手伝ってくれることを願っています.
いくつかの条件のいずれかが当てはまる場合に当てはまる用語があります。
answer -->
Var,
a([Att1],[Var1]),
a([Att2],[Var2]),
a([Att3],[Var3]),
{
[one, two, three] = [Att1, Att2, Att3] -> Var1 = Var; % first condition
[one, three, two] = [Att1, Att2, Att3] -> Var1 = Var; % second condition
[two, one, three] = [Att1, Att2, Att3] -> Var2 = Var; % third condition
[three, one, two] = [Att1, Att2, Att3] -> Var2 = Var; % fourth condition
}
すべての属性と変数には固定値が付属しており、「{}」セクションの条件のいずれかが満たされている場合、「答え」を提供したいのですが、何らかの理由で機能しません。問題は、条件の 1 つ、たとえば最初の条件を確認するだけで、期待どおりに機能することです。しかし、論理的な「または」が適切に機能しなかったため、ルールを 4 回コピーして貼り付けたくありません。
言葉で言えば、完全に異なるものをコーディングした場合に備えて、最初の条件は、Att1が1に等しく、 Att2が2に等しく、 Att3が3に等しいかどうかを確認することを意味します。その場合は、Var1がVarの値と等しいことも確認します。そうでない場合は、他の条件を解決できるかどうかを確認してください。
編集:「;」があったことがわかりました コードが多すぎます。