2013-05-08 3 views
2

그래서 P가 쌍 (예 : P = [[1,2], [3,4]) 목록 인 압축을 풀고 술어를 만들어야합니다. . R은 각 쌍에서 두 번째 요소를 포함하는 새로운리스트 중에] L은 각각의 쌍의 첫 번째 요소를 포함하는 새로운리스트이어야 여기Prolog : 쌍 목록의 압축을 풉니 다.

있어 I 가진 것을 :.

unzip([],[],[]). 
unzip([H1|T1],[H2|T2],[HL,HR|T]) :- 
    H1 = HL, 
    H2 = HR, 
    unzip(T1,T2,T). 

이것 쌍의 수가 홀수가 아닌 이상 작동합니다.이 경우, 어떤 조언이 될 수 있는지 어떻게 보지 못합니까?

EDIT : 알아 냈습니다. 궁금한 점이 있다면 여기 내 해결책이 있습니다.

unzip([],[],[]). 
unzip([H1|T1],[H2|T2],[[HL,HR]|T]) :- 
    H1 = HL, 
    H2 = HR, 
    unzip(T1,T2,T). 
+3

이 대답 할과 이용 약관을 읽고 동의를 주시기 바랍니다. 나중에 누군가를 돕게 될 수도 있습니다. – joneshf

+2

쓴 내용은'zip'입니다. – false

답변

5

귀하의 솔루션은 올바르지 만, 그리고, 머리에 통일을 사용해야 할 수 있습니다

unzip([], [], []). 
unzip([L|Ls], [R|Rs], [[L,R]|Ps]) :- unzip(Ls, Rs, Ps). 
관련 문제