我一直在尝试编写一个程序来比较两个相同的列表,除了列表 2 的最后两个元素顺序相反,即 [4,5,6] 和 [4,6,5],并且返回最后两个已交换的元素。
例如:
SwapLastTwo([4, 5, 6] , [ 4, 6, 5], X).
Run Code Online (Sandbox Code Playgroud)
应该返回
X = [6, 5]
Run Code Online (Sandbox Code Playgroud)
到目前为止我的代码如下所示:
lastTwoReversed([Z,A|T],[_,Y,X]) :-reverse([Z,A|T],[Y,X|_]).
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的谓词仅接受两个参数并检查是否相同,但列表 2 的最后两个元素顺序相反true,如果满足条件则返回
我不知道如何修改我的谓词以将 theX作为其第三个参数并入并使其返回交换的元素。