标签: 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。
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? 为什么输出_3122 / _3126而不是值x和z?
X
Y
_3122
_3126
x
z