2013-04-10 6 views

답변

8

당신이 그것을 작동

m2([A|As], [B|Bs], [A,B|Rs]) :- 
    !, m2(As, Bs, Rs). 
m2([], Bs, Bs) :- !. 
m2(As, [], As). 
+0

이것은 작동합니다. 그리고 저에게 총 15 점을 줄 수있는 평판 포인트를주지 못하면,이 답에 +1을 줄 수도 있습니다. :)하지만 '!' 제발? –

+1

그것은 (in) 유명한 ** 컷 **입니다. 시간은 전에 어느 정도 - 프롤로그 실행을 제어하는 ​​유일한 (!) 방법이었습니다. 그것은 선택을 커밋합니다. – CapelliC

3

당신은이 링크에서 볼 수 있습니다.

일부 시도가 끝나면 나에게 제안 된 원본 (테스트 및 작동)보다 훨씬 간단한 정답입니다.

mergelist_alternate([],[],[]). 
mergelist_alternate([X],[],[X]). 
mergelist_alternate([],[Y],[Y]). 
mergelist_alternate([X|List1],[Y|List2],[X,Y|List]) :- mergelist_alternate(List1,List2,List). 

이처럼 호출 할 수

mergelist_alternate([1,2,3],[a,b],L),!. 
+0

테스트되지 않은 코드는 작동하지 않습니다. –

+0

코드를 검토하고 다시 작성하여 테스트했습니다. – racribeiro

0
merge_list([],L,L). 
merge_list([H|T],L,[H|M]):- 
    merge_list(T,L,M). 

을 시도 할 수 있습니다. 100 % 테스트를 마쳤습니다!

Input: merge_list([1,2],[3,4],M). 
Output: M=[1,2,3,4]. 
+0

이것은 물어 본 것이 아닙니다. – AndrewB

관련 문제