如何在Prolog中定义不同的语言?
如何定义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。这
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)