【问题标题】:Compare two atoms in Prolog在 Prolog 中比较两个原子
【发布时间】:2010-09-05 19:45:13
【问题描述】:

我一直在学习 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).

有效

但是当我给的时候

?- associatedWith(X,Y,Z),X=\=Z.

我得到解析器异常

Parser exception [Should be evaluable ''a2''[7:31]] line 7:31 

我从网站得到的是 =\= 是数值,我无法得到比较字符串值的答案..谁能帮助我..

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

【问题讨论】:

    标签: prolog


    【解决方案1】:

    您正在尝试比较原子,而不是字符串。无论如何,你需要\=

     ?- aaa = aaa.
    true.
    
     ?- aaa \= aaa.
    false.
    
     ?- aaa \= aab.
    true.
    

    【讨论】:

    • 其实更常见的是\+(A == B)A \== B来表示不等式。 A \= B\+ (A = B) 的缩写,即不可统一。
    猜你喜欢
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 2021-10-08
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多