如何从Prolog中的列表中获取每个连续元素

时间:2012-12-02 07:48:29

标签: prolog

我说我有一个清单 [[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).

我已经编写了我想要添加的谓词,但是我很难从列表列表中获取两个元素。

1 个答案:

答案 0 :(得分: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).