我正在尝试进一步了解 Prolog,以及它如何处理列表统一。所以我坚持这个例子,我在执行代码时知道答案,但我不明白它是如何工作的。
[X,a,X,f(X,a)|Y] = [Z,Z|Y]
答案是:
X=Z
Z=a
Y=_
L=[a,f(a,a)|Y]
我知道头部与另一个头部统一,所以如果我进行一些更改,如下所示:
let C=[X,a,X,f(X,a)]
let D=[Z,Z]
统一应该这样:
[C|Y]=[D|L]
所以 Y 必须等于 L,而不是 _,对吧?有人可以更好地解释我并纠正我的错误吗?