前缀列表在prolog中的工作原理

前缀列表在prolog中的工作原理,prolog,Prolog,我试图理解这个代码是如何工作的,但我做不到 prefix(P,L) :- append(P,_,L). 我使用的查询是前缀(X[a,b,c,d])。如果您有时间,您能解释一下它是如何工作的吗?。谢谢。看着你可以看到 当列表L3是将列表L1和L2连接在一起的结果时,append(L1、L2、L3)将保持不变(连接意味着将列表连接在一起,端到端) 那么你上面的谓词说某物是某物的前缀,如果你能将任何东西(即)附加到前者并获得后者 很有道理,不是吗?序言很好。谢谢您的解释

我试图理解这个代码是如何工作的,但我做不到

prefix(P,L) :- append(P,_,L).
我使用的查询是
前缀(X[a,b,c,d])。
如果您有时间,您能解释一下它是如何工作的吗?。谢谢。

看着你可以看到

当列表L3是将列表L1和L2连接在一起的结果时,append(L1、L2、L3)将保持不变(连接意味着将列表连接在一起,端到端)

那么你上面的谓词说某物是某物的
前缀
,如果你能将任何东西(即
)附加到前者并获得后者


很有道理,不是吗?序言很好。

谢谢您的解释