2014-03-19 18 views

回答

3

純Prolog的,量身定製您的要求:

'convert every two consecutive element'([], []). % base case 
'convert every two consecutive element'([A,B|R], [[A,B]|S]) :- 
    'convert every two consecutive element'(R, S). 

表的長度必須是偶數這個成功,否則,你將需要改進的基本情況。

+0

奇數列表: '每兩個連續元素轉換'([A],[]) –

+1

@GuillermoMerino將刪除奇數奇偶校驗列表的最後一個元素。 OP沒有定義他們想要對一個奇怪的元素做什麼,但是可能合乎邏輯的事情就是將它包含爲一個單獨的子元素,「[A]」。因此,額外的基本情況是,'轉換每兩個連續的元素'([A],[[A]])。'然後,'轉換每兩個連續的元素'([a,b,c,d,e ],L).''將產生'L = [[a,b],[c,d],[e]]'而不是'[[a,b],[c,d]]''。 – lurker