このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1268979408/831
#  質問です 
#  C++をC#にするにはどうすればよいですか 
# 
# 

'C++をC#にするには'(_文字列,_置換された文字列) :-
        全置換(_文字列,'c++','c#',_置換された文字列).

全置換(_文字列,_置換対象文字列,_置換文字列,_置換された文字列) :-
        findall(S,(
                    ひとつひとつ置換(_文字列,'c++','c#',S)),
                L),
        last(L,_置換された文字列),!.
全置換(_文字列,_,_,_文字列).

ひとつひとつ置換(_文字列,_置換対象文字列,_置換文字列,_置換された文字列) :-
        sub_atom(_文字列,Len1,Len2,Len3,_置換対象文字列),
        sub_atom(_文字列,0,Len1,_,S1),
        \+(sub_atom(S1,_,Len2,_,_置換対象文字列)),
        St is Len1+Len2,
        sub_atom(_文字列,St,Len3,_,S3),
        concat_atom([S1,_置換文字列,S3],_置換された文字列).
ひとつひとつ置換(_文字列,_置換対象文字列,_置換文字列,_置換された文字列) :-
        sub_atom(_文字列,Len1,Len2,Len3,_置換対象文字列),
        sub_atom(_文字列,0,Len1,_,S1),
        \+(sub_atom(S1,_,Len2,_,_置換対象文字列)),
        St is Len1+Len2,
        sub_atom(_文字列,St,Len3,_,S3),
        concat_atom([S1,_置換文字列],_置換された文字列1),
        ひとつひとつ置換(S3,_置換対象文字列,_置換文字列,_置換された文字列2),
        concat_atom([_置換された文字列1,_置換された文字列2],_置換された文字列).