我正在尝试编写一个谓词,如果 X 是 Y 的子列表,则该谓词为真,而不考虑 Y 的第一项和最后一项。例如,查询 listWithinList([b,c,d],[a, b,c,d,e]) 将返回 True,但查询 listWithinList([b,c,d,e],[a,b,c,d,e]) 将产生 False,因为 e,Y 的最后一个元素, 不应该是 X 的一部分。
目前我有,
listWithinList(X,Y):-append(_,Y2,Y), append(X,_,Y2).
但我不确定如何更改代码以使其执行相同的技巧,但不考虑 Y 的第一项和最后一项。