代码来比较prolog中的两个字符串

kar*_*thi 4 prolog

我一直在学习prolog ..我正在使用一个名为prol1.1.1的编辑器我需要编写规则来比较2个字符串,当我给出类似的东西时

rel(a1,b1).
rel(a2,b2).
rel(b2,c2).

associatedWith(X,Y,Z) :- rel(X,Y),rel(Y,Z).

?- associatedWith(X,Y,Z).
Run Code Online (Sandbox Code Playgroud)

有用

但是当我给予

?- associatedWith(X,Y,Z),X=\=Z.
Run Code Online (Sandbox Code Playgroud)

我得到解析器异常

Parser exception [Should be evaluable ''a2''[7:31]] line 7:31 
Run Code Online (Sandbox Code Playgroud)

我从网站得到的是=\=是数字值,我无法得到比较字符串值的答案..任何人都可以帮助我..

而且我也无法获得swi-prolog的gui你也可以帮助我吗?我需要使用java程序中的调用prolog,输出必须在java中再次处理,任何人都可以帮助我..

小智 6

你试图比较原子,而不是字符串.无论如何,你需要\ =

 ?- aaa = aaa.
true.

 ?- aaa \= aaa.
false.

 ?- aaa \= aab.
true.
Run Code Online (Sandbox Code Playgroud)

  • 实际上,对于术语的不等式,更常见的是`\ +(A == B)`或'A\== B`.`A\= B`是`\ +(A = B)`的缩写,即不可统一. (7认同)