このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1268979408/831
%  
%  
%  常に置換可能な部分のうち一箇所だけが置換される述語定義です。
%  
%  
%  対象文字列がccで文字列中にcが3個以上連なっている場合などは
%  最初のccの切り出しの後、そのccを除外して置換対象を探すか、
%  あるいは最初のcの次のc以後を置換対象とするかの選択が有り得ます。
%  
%  以下は後者、一旦対象になった文字列に重なって次の対象文字列を
%  探す場合の述語定義です。
% 
%  この定義はどこが置換されたか分かりにくいのが欠点です。
%  

'ひとつだけ置換(対象文字列の重なりを許す)'(_文字列,_置換対象文字列,_置換文字列,_置換された文字列) :-
        sub_atom(_文字列,Len1,Len2,Len3,_置換対象文字列),
        sub_atom(_文字列,0,Len1,_,S1),
        St is Len1+Len2,
        sub_atom(_文字列,St,Len3,_,S3),
        concat_atom([S1,_置換文字列,S3],_置換された文字列).