% Prolog
交互にならべた文字列(Str1,Str2,Str) :-
atom_chars(Str1,Chars1),
atom_chars(Str2,Chars2),
交互にならべた文字列_1(Chars1,Chars2,Chars3),
atom_chars(Str,chars3).
交互にならべた文字列_1([],[],[]) :- !.
交互にならべた文字列_1(L,[],L) :- !.
交互にならべた文字列_1([],L,L) :- !.
交互にならべた文字列_1([A|R1],[B|R2],[A,B|R]) :-
交互にならべた文字列_1(R2,R1,R).
?- 交互にならべた文字列(abcde,opq,X).
X = aobpcqde;
no
?-