0

如何在 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 中没有找到它。我能做些什么?

4

2 回答 2

1

在 Prolog 中定义两个变量不相等:

X \= Y
not(X = Y)
\+ (X = Y)
于 2014-06-29T19:32:49.960 回答
0

Prolog 中的等价性==/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.

希望这可以帮助!

于 2014-04-18T09:50:18.990 回答