Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Prolog中将变量与字符串进行比较_Prolog - Fatal编程技术网

在Prolog中将变量与字符串进行比较

在Prolog中将变量与字符串进行比较,prolog,Prolog,但是现在,每当我输入查询male(X)时,每当X与“john”或“dexter”统一时,它都会显示false,而应该是true。有人能帮忙吗?问题: 在prolog中没有类似于double等于(=)的运算符。它将产生意想不到的输出 解决方案: 仅使用等于(=)进行比较 代码 不建议在Prolog中使用OR运算符 参考资料: 这些是原子,不是弦=就足够了。只有两个事实会好上千倍,male(约翰)。男性(德克斯特)。到此为止。请阅读一本书和/或您的系统文档,这是每本书第二页的材料。我同意Dan

但是现在,每当我输入查询male(X)时,每当X与“john”或“dexter”统一时,它都会显示false,而应该是true。有人能帮忙吗?

问题: 在prolog中没有类似于double等于(=)的运算符。它将产生意想不到的输出

解决方案: 仅使用等于(=)进行比较

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

参考资料:


这些是原子,不是弦<代码>=就足够了。只有两个事实会好上千倍,
male(约翰)。男性(德克斯特)。
到此为止。请阅读一本书和/或您的系统文档,这是每本书第二页的材料。我同意Daniel的观点。你需要阅读一本关于Prolog的基础教程,获得一本像样的入门教材,并通读入门材料。您试图使用Prolog,比如C或其他命令式语言,但它就是不起作用。在这种特殊情况下,如果您查找
==/2
的含义,您会发现
X==john
失败,因为
john
是一个原子,
X
是一个未实例化的变量。所以他们不匹配<代码>=/2不是统一运算符。我的答案对您有帮助吗@拉杰斯,你的回答真的帮助了我@jay Joshi!我很乐意帮助你:)如果你愿意,请勾选它作为答案。它会帮助别人。所以其他用户也知道这个问题已经得到了回答。
 male(X) :- (X=='john') ; (X=='dexter').
male(X):-
       X = 'john'.
male(X):-
       X = 'dexter'.
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").