2014-05-13 4 views
2

목록의 목록에서 각 목록을 뒤집고 싶습니다.프롤로그 목록의 목록을 뒤집기

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

가 이미 역 기능을 가지고 : 내가 원하는 것은리스트의 목록을 읽고 각 목록을 반대하고이 결과를 얻을 수 있습니다

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

: 나는처럼 보이는 뭔가를

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

'maplist (reverse, L, R)' – false

+0

고마워요! 나는 어버이스트가 프롤로그를 위해 존재했는지 몰랐다. – MaximeHeckel

답변

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

각 하위 목록을 반대로 '/ 2 역'.

관련 문제