列表列表中的反向列表prolog

时间:2014-05-13 13:14:50

标签: list prolog

我想从列表列表中反转每个列表。 我有一些看起来像:

[[a,b],[],[c,d,e],[],[],[f,g]]

我想要的是阅读列表列表并反转每个列表并获得此结果:

[[b,a],[],[e,d,c],[],[],[g,f]]

我已经有了反向功能:

reverse(L, R) :- reverse(L, [], R).
reverse([], R, R).
reverse([H|T], A, R) :- reverse(T, [H|A], R).

我如何设法阅读清单?

像这样的递归函数会起作用吗?

reverseLL([H|T], L) :-
   reverse(H,NH),
   reverseLL([T],[NH|L]).

reverseLL([],L).

1 个答案:

答案 0 :(得分:1)

reverseInList([],[]).
reverseInList([H|Ts],[H1|R]):-
    reverse(H,H1),
    reverseInList(Ts,R).

这可以通过递归列表并使用库函数'reverse / 2'来反转每个子列表。