如何在Prolog中定义不同的语言?

如何在Prolog中定义不同的语言?,prolog,visual-prolog,Prolog,Visual Prolog,如何定义Prolog中的两个变量不相等?例如: z is X and Y parent X is male and Y is female 现在我想找到兄弟姐妹。但序言的结果是: Y sister Y when parent have one child and not have X 现在我要定义: different(X,y). 我认为旧版本或其他版本的VisualProlog在库中有“不同”,但我在新的VisualProlog中找不到。我能做什么?Prolog中的等价性是==/2。这

如何定义Prolog中的两个变量不相等?例如:

z is X and Y parent

X is male and Y is female
现在我想找到兄弟姐妹。但序言的结果是:

Y sister Y when parent have one child and not have X
现在我要定义:

different(X,y).

我认为旧版本或其他版本的VisualProlog在库中有“不同”,但我在新的VisualProlog中找不到。我能做什么?

Prolog中的等价性是
==/2
。这也是在变量之间定义的。它并没有像
=/2
那样统一两个不同的变量

一些简单的例子:

?- X = Y.
X = Y.
?- X == Y.
false.
以及:

由于您特别要求变量之间的
相等,我想知道您是否要求的不仅仅是相等。相等有时被定义为替换下的相等。所以
a=b
意味着
f(…,a,…)=f(…,b,…)

在序言中,情况似乎也是如此:

?- f(a, B1, c) = f(a, B2, c).
B1 = B2.
?- f(a, B1, c) == f(a, B2, c).
false.
以及:


希望这有帮助

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

X \= Y
not(X = Y)
\+ (X = Y)

您需要使用Visual Prolog吗?我想您只需要不等式运算符:[[1]:请参见:
?- f(a, B, c) = f(a, B, c).
true.
?- f(a, B, c) == f(a, B, c).
true.
X \= Y
not(X = Y)
\+ (X = Y)