要求其中一个条件

时间:2014-08-22 08:40:51

标签: prolog boolean-logic unification

我意识到这是非常基本的,但我无法从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 ;;'代码太多了。

0 个答案:

没有答案