10/06/22 18:18:11
>>40
% Prolog 論理変数名が間違ってました。ついでに2パターン追加。
二つのリストの最初のN要素だけ入れ替える(L1_1,L2_1,N,L1_2,L2_2) :-
length(L1_0,N),
length(L2_0,N),
append(L1_0,R1,L1_1),
append(L2_0,R2,L2_1),
append(L2_0,R1,L1_2),
append(L1_0,R2,L2_2),!.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
二つのリストの最初のN要素だけ入れ替える(L1_1,L2_1,N,L1_2,L2_2) :-
integer(N),
length(LN,N),
二つのリストの最初のN要素だけ入れ替える(L1_1,L2_1,LN,L1_2,L2_2).
二つのリストの最初のN要素だけ入れ替える(R1,R2,[],R1,R2).
二つのリストの最初のN要素だけ入れ替える([A|R1_1],[B|R2_1],[_|R],[B|R1_2],[A|R2_2]) :-
二つのリストの最初のN要素だけ入れ替える(R1_1,R2_1,R,R1_2,R2_2).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
二つのリストの最初のN要素だけ入れ替える(R1,R2,0,R1,R2).
二つのリストの最初のN要素だけ入れ替える([A|R1_1],[B|R2_1],N,[B|R1_2],[A|R2_2]):-
N1 is N - 1,
二つのリストの最初のN要素だけ入れ替える(R1_1,R2_1,N1,R1_2,R2_2).