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).
我已經寫了我想要放入的謂詞,但是我很難從列表中獲取兩個元素。
讓說我有一個列表 [[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).
我已經寫了我想要放入的謂詞,但是我很難從列表中獲取兩個元素。
你可以試試:
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).
只是'拉平/ 2'列表緩解服用了兩次利弊。元素作爲@ joel76建議 – ony