Ego*_*gor 26 equals prolog clause visual-prolog
我在Visual Prolog中找不到任何关于"不等于"标志的文档.请提供此问题的正确解决方案:
class predicates
sister : (string Person, string Sister) nondeterm(o,o).
clauses
sister(Person, Sister) :-
Person [not-equal-sign] Sister,
parent(Person, Parent),
parent(Sister, Parent),
woman(Sister).
Run Code Online (Sandbox Code Playgroud)
Kaa*_*rel 50
我不知道你的意思是"不平等"(不统一?),但你可以试试这些:
X \= Y
not(X = Y)
\+ (X = Y)
Run Code Online (Sandbox Code Playgroud)
Kaarel指出的第二个变体的文档可以在Visual Prolog参考页面中找到.
但是,您的代码问题会更深入.您需要等待不相等的测试,直到Person和Sister这两个术语都绑定为止,所以重新排列这样的事情:
sister(Person, Sister) :-
parent(Person, Parent),
parent(Sister, Parent),
not(Person = Sister),
woman(Sister).
Run Code Online (Sandbox Code Playgroud)
中缀运算符"<>"也有语法,这意味着不同(或不同).一旦这两个术语被约束,这应该给出与检查术语是否不能统一相同的结果,这就是上述结构所做的.