2013-07-19 49 views
0

我有一個列表:名單轉型

L = [1,2,3,4,5,6,7,8] 

我想將其改造成這樣:

L= [ex(1,2),ex(3,4),ex(5,6),ex(7,8)] 

我怎樣纔能有效地做到這一點?

[編輯補充:] 這是我到目前爲止有:

convert([] , S) . 
convert([A,B|Rest] , S) :- 
    S is (ex(A,B) | Rest) , 
    convert(Rest) 
    . 
+0

我是初學者 我失去了一個小時的努力得到它 這是我的舊代碼 轉換([],S)。 ([A,B | Rest],S): - S是(ex(A,B)| Rest),轉換(Rest)。 – Giuspex

+0

'is/2'只是爲了減少算術例外。你在正確的軌道上,你只需要將'ex(A,B)| Rest'移動到頭部並使用正確的列表符號。下次帶上你的代碼,我會少一些諷刺意味。 –

+0

我會記住它:)再次感謝 – Giuspex

回答

1

天哪,你嘗試過什麼呢?

convert([], []). 
convert([X,Y|R], [ex(X,Y)|S]) :- convert(R, S). 

告訴你的教授我說「嗨」。