このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1323566370/792
#  ABCが登場したらその後に登場する全てのDEFをXYZへ置換するにはどうしたらいいのん? 
#   
#  xkdmeABCidkDEFledxaoDEFasdDEF 
#  ↓ 
#  xkdmeABCidkXYZledxaoXYZasdXYZ 
#   
# 

'ABCが登場したらその後に登場する全てのDEFをXYZへ置換するにはどうしたらいいのん? '(_文字列,_置換された文字列) :-
        sub_atom(_文字列,S1,'ABC',S2),!,
        その後に登場する全てのDEFをXYZへ置換する(S2,S3),
        atom_list_concat([S1,'ABC',S3],_置換された文字列).
'ABCが登場したらその後に登場する全てのDEFをXYZへ置換するにはどうしたらいいのん? '(_文字列,_文字列).

その後に登場する全てのDEFをXYZへ置換する(_文字列,_置換された文字列) :-
        決定性の全置換(_文字列,'DEF','XYZ',_置換された文字列).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
決定性の全置換(_文字列,_置換対象文字列,_置換文字列,_置換された文字列) :-
        sub_atom(_文字列,Start,Length,Rest,_置換対象文字列),
        sub_atom(_文字列,0,Start,_,S1),
        Start_S3 is Start + Length,
        sub_atom(_文字列,Start_S3,Rest,0,S3),
        決定性の全置換(S3,_置換対象文字列,_置換文字列,_置換された文字列_2),
        atomic_list_concat([S1,_置換文字列,_置換された文字列_2],_置換された文字列),!.
決定性の全置換(_文字列,_,_,_文字列).

%  sub_atom/4