10/06/29 12:35:39
>>151
% Prolog
'複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力する' :-
催促付き整数入力('文字列の個数を予約してください : ',N),
findall(S,(
for(1,_,N),write_formatted('入力文字列[%t] : ',[M]),
get_line(S)),
_入力文字列ならび),
write('繋ぎ合わせる順番を入力してください。\n'),
findall(N2,(for(1,_,N),get_integer(N2)),_結合順序指定ならび),
文字列のならびの並べ替え(_入力文字列ならび,_結合順序指定ならび,_指定順序に並び替えられたならび),
concat_atom(_指定順序に並べ替えられたならび,_繋ぎ合わされた文字列),
write_formatted('%t\n',[_繋ぎ合わされた文字列]).
文字列のならびの並べ替え(_,[],[]) :- !.
文字列のならびの並べ替え(_選択対象ならび,[N|R2],[_取り出し文字列|R3]) :-
list_nth(N,_選択対象ならび,_取り出し文字列),
文字列のならびの並べ替え(_選択対象ならび,R2,R3).