0
的列表的順序我有變量之間的替代列表和值 它們在列表[[x,y],[1,2]]
呈現(意味着的x
值等於1
,並且y
值等於2
)。 我想將列表更改爲對的列表,其含義爲[[x,1],[y,2]]
, 我試圖使用append
,以便我將在遞歸的每一步中創建一對並將其添加到新列表中,但我有問題(主要是選擇每一對的頭部和尾部)如何更改名單
的列表的順序我有變量之間的替代列表和值 它們在列表[[x,y],[1,2]]
呈現(意味着的x
值等於1
,並且y
值等於2
)。 我想將列表更改爲對的列表,其含義爲[[x,1],[y,2]]
, 我試圖使用append
,以便我將在遞歸的每一步中創建一對並將其添加到新列表中,但我有問題(主要是選擇每一對的頭部和尾部)如何更改名單
你的例子有點做作,但轉置它有點矯枉過正,特別是如果你要實現自己。我認爲這應該可以解決您的需求
'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).
您可以在解決方案中顯示您的嘗試嗎?或者只是使用[轉置/ 2](http://www.swi-prolog.org/pldoc/man?predicate=transpose/2)。 – lurker 2014-09-19 16:25:43
可能的重複[如何轉置矩陣在序言](http://stackoverflow.com/questions/4280986/how-to-transpose-a-matrix-in-prolog) – lurker 2014-09-19 16:29:38
@ lurker:呵呵,你是多麼的正確! – false 2014-09-19 16:35:19