小编Bil*_*ter的帖子

在 Prolog 中交换列表的最后两个元素

我一直在尝试编写一个程序来比较两个相同的列表,除了列表 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作为其第三个参数并入并使其返回交换的元素。

list prolog

6
推荐指数
1
解决办法
394
查看次数

标签 统计

list ×1

prolog ×1