Prolog 查询结果变量而不是值
我编写了以下prolog代码:Prolog 查询结果变量而不是值,prolog,Prolog,我编写了以下prolog代码: f(x, y, z). g(f(X, Y, Z), Y). 当我使用查询g(X,Y)。我希望得到结果X=f(X,Y,z),Y=Y,但我得到的结果是X=f(_3122,Y,_3126)。 当我输入g(f(X,Y,Z),Y1)。结果是Y=Y1 为什么第一个查询只匹配X,而不匹配Y? 为什么输出是\u3122/\u3126而不是值x和z?因为在g(f(x,Y,z),Y)中使用大写字母。!!!这是因为g应该输出所有fs的第二个值,而不仅仅是一个值。你不应该有形式的事实
f(x, y, z).
g(f(X, Y, Z), Y).
当我使用查询g(X,Y)。
我希望得到结果X=f(X,Y,z),Y=Y
,但我得到的结果是X=f(_3122,Y,_3126)。
当我输入g(f(X,Y,Z),Y1)。
结果是Y=Y1
为什么第一个查询只匹配X
,而不匹配Y
?
为什么输出是
\u3122
/\u3126
而不是值x
和z
?因为在g(f(x,Y,z),Y)中使用大写字母。
!!!这是因为g
应该输出所有f
s的第二个值,而不仅仅是一个值。你不应该有形式的事实g(f(X,Y,Z),Y)。
但是形式的事实g(f(X,Y,Z),Y)。
或者更好的g(f(X,Y,Z),Y):-f(X,Y,Y),Z)。
这些都会起作用的……非常感谢你。这是它应该做的。很高兴能帮上忙!!!