我意识到这是非常基本的,但我无法从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
}
所有属性和变量都带有固定值,如果" {}"中有任何条件,我想提供"回答"部分已经完成 - 但由于某种原因,它不起作用。问题是,如果我只检查其中一个条件,比如第一个条件,它会按预期工作。但是我不想复制/粘贴规则4次,因为我没有得到符合逻辑的"或"工作正常。
只是把它写成文字,如果我编写了完全不同的东西,第一个条件就是说:检查 Att1 是否等于一个和 Att2 等于 2 , Att3 等于 3 。如果是这种情况,还要确认 Var1 等于 Var 中的值。如果没有,请检查是否可以解决任何其他条件。
编辑:原来我刚刚有一个&#39 ;;'代码太多了。