このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354393458/700
#  お題:重複した文字のうち最初に現れた文字だけ削除する。 
#  例 
#  "Hello, world" -> "Hel, world" 

'重複した文字のうち最初に現れた文字だけ削除する。'(_文字列,_重複した文字のうち最初に現れた文字だけ削除された文字列) :-
        '重複した文字のうち最初に現れた文字だけ削除する。'(_文字列,[],_重複した文字のうち最初に現れた文字だけ削除された文字列).

'重複した文字のうち最初に現れた文字だけ削除する。'(_文字列,_既に削除対象となった文字列ならび,_重複した文字のうち最初に現れた文字だけ削除された文字列) :-
        '重複した文字のうち最初に現れた文字の前後文字列'(_文字列,_削除対象文字列,_既に削除対象となった文字列ならび,_前方文字列,_後方文字列),
        '重複した文字のうち最初に現れた文字だけ削除する。'(_後方文字列,[_削除対象文字列|_既に削除対象となった文字列ならび],_重複した文字のうち最初に現れた文字だけ削除された後方文字列),
        atomic_list_concat([_前方文字列,_重複した文字のうち最初に現れた文字だけ削除された後方文字列],_重複した文字のうち最初に現れた文字だけ削除された文字列),!.
'重複した文字のうち最初に現れた文字だけ削除する。'(_文字列,_,_文字列).

'重複した文字のうち最初に現れた文字の前後文字列'(_文字列,_削除対象文字列,_既に削除対象となった文字列ならび,_前方文字列,_後方文字列) :-
        sub_atom(_文字列,_,_,_,_前方文字列,_削除対象文字列,_後方文字列,_,_,_),
        \+(member(_削除対象文字列,_既に削除対象となった文字列ならび)),
        sub_atom(_後方文字列,_,_,_,_削除対象文字列),!.