如何定义Prolog中两个变量不相等?例如:
z is X and Y parent
X is male and Y is female
现在我想找到姐妹或兄弟。但是Prolog的结果是:
Y sister Y when parent have one child and not have X
现在我想要定义:
different(X,y).
我认为Visual Prolog的旧版或其他版本有不同的版本。在图书馆,但我没有在新的Visual Prolog中找到这个。我该怎么办?
答案 0 :(得分:1)
在Prolog中定义两个变量不相等:
X \= Y
not(X = Y)
\+ (X = Y)
答案 1 :(得分:0)
等效是==/2
。这也是在变量之间定义的。具体而言不将两个不同的变量统一为=/2
。
一些简单的例子:
?- X = Y.
X = Y.
?- X == Y.
false.
和
?- X = X.
true.
?- X == X.
true.
由于你特别要求变量之间的相等,我想知道你是否要求的不仅仅是等价。平等有时被定义为替代下的等同。因此a = b
暗示f(..., a, ...) = f(..., b, ...)
。
在Prolog中,情况似乎也是如此:
?- f(a, B1, c) = f(a, B2, c).
B1 = B2.
?- f(a, B1, c) == f(a, B2, c).
false.
和
?- f(a, B, c) = f(a, B, c).
true.
?- f(a, B, c) == f(a, B, c).
true.
希望这有帮助!