いろんな言語で宿題スレ

このエントリーをはてなブックマークに追加
150デフォルトの名無しさん
% 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
?-