在Prolog

时间:2017-11-20 04:08:32

标签: prolog

 male(X) :- (X=='john') ; (X=='dexter').

但是现在每当我输入查询male(X)并且每当X与' john'或者' dexter'它显示为false,而它应该为true。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

问题:

在prolog中没有像double这样的运算符等于(==)。它会产生意想不到的输出。

解决方案:

仅使用等于(=)进行比较。!

代码

male(X):-
       X = 'john'.
male(X):-
       X = 'dexter'.

不建议在Prolog中使用OR运算符。

参考:

答案 1 :(得分:0)

string1(progga).
string2(ikra).

go:-
write("Enter your name"),
nl,
read(X),nl,
string1(Y),
X=@=Y,nl, write("Matched");
write("not Matched"),go2.

/*Another way to*/
go2:-                
string1(A),
string2(B),
A=@=B,nl, write("Matched");
write("not Matched").