1
저는 Prolog를 처음 사용하고이 연습 교본을 발견했습니다. 이 질문은 술어 정의를 요청합니다.인터리브 Prolog 목록의 요소
zipper([[List1,List2]], Zippered). //this is two lists within one list.
이 술어는 List1의 요소를 List2의 요소와 인터리브해야합니다.
zipper ([],[],Z).
zipper([X],[],[X]).
zipper([],[Y],[Y]).
zipper([X|List1],[Y|List2],[X,Y|List]) :- zipper(List1,List2,List).
내가 한 목록이 솔루션을 번역 할 수있는 방법 확실하지 않다 : 예를 들어
,zipper([[1,3,5,7], [2,4,6,8]], Zippered) -> Zippered = [1,2,3,4,5,6,7,8].
zipper([[1,3,5], [2,4,6,7,8]], Zippered) -> Zippered = [1,2,3,4,5,6,7,8].
은 지금까지 나는 두 개의 서로 다른 목록에 대한 해결책을 가지고 있습니다. 내가 어디에서 시작할 수 있는지에 대한 제안은 매우 도움이 될 것입니다!
이것은 매우 쉽게 보인다. zipper ([[List1, List2]], Zippered) : - zipper (List1, List2, Zippered).'[[List1, List2]]'는 확실히 쓰인다. ** 아닙니다 ** 한 쌍의 목록을 나타내는 좋은 방법입니다. 별도의 인수를 사용하거나,'(-)/2' 연산자를 사용하여'List1-List2' 쌍을 나타낼 수 있습니다. – mat