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).

入れたい述語は既に書いたのですが、リストのリストから2つの要素を取得するのに苦労しています。

4

1 に答える 1

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).
于 2012-12-02T11:00:05.413 に答える