2012-12-02 35 views
0

讓說我有一個列表 [[a,b,c],[d,e,f],[g,h,i]]我如何從一個列表中的每個連續元素在序言

我想每個連續的元素,並把它放在另一個謂詞。

func(a,b). 
func(b,c). 

func(d,e). 
func(e,f). 

func(g,h). 
func(h,i). 

我已經寫了我想要放入的謂詞,但是我很難從列表中獲取兩個元素。

+0

只是'拉平/ 2'列表緩解服用了兩次利弊。元素作爲@ joel76建議 – ony

回答

1

你可以試試:

consecutive(L, R) :- 
    maplist(create_func, L, RT), 
    flatten(RT, R). 

create_func([A,B], [func(A,B)]) :- !. 

create_func([A,B | T], [func(A,B) | R]) :- 
    create_func([B | T], R). 
相關問題