如何更改列表列表的顺序

时间:2014-09-19 16:21:24

标签: prolog

我有变量和值之间的替换列表 它们显示在列表[[x,y],[1,2]]中(意味着x的值等于1y的值等于2)。 我想将列表更改为意义为[[x,1],[y,2]]的对列表, 我尝试使用append以便在递归的每一步中创建一对并将其附加到新列表但我有这样做的问题(主要是选择每对的头部和尾部)

1 个答案:

答案 0 :(得分:0)

你的例子有点做作,但转移它有点矫枉过正,特别是如果你要自己实现的话。我认为这应该可以解决你的需求

'change an order of list of lists'([X_Y_Z, A_B_C], XA_YB_ZC) :-
    findall([K, V], (nth1(I, X_Y_Z, K), nth1(I, A_B_C, V)), XA_YB_ZC).