このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/799
#  テキストファイルの中にある複数の英字の文字列をソートして書きこむプログラム教えてください 
#   
#  MOJI 
#  EIGO 
#  NIPPON 
#   
#   ↓ 
#   
#  EIGO 
#  MOJI 
#  NIPPON 
# 
# 

'テキストファイルの中にある複数の英字の文字列をソートして書きこむ'(_テキストファイル) :-
        get_lines(_テキストファイル,Lines),
        整列(Lines,整列したLines),
        put_lines(_テキストファイル,_整列したLines).

整列([],[]).
整列([_軸要素|_残り要素],整列したLines) :-
        軸要素で分割する(_軸要素,_残り要素,_軸要素より小さいか等しい要素ならび,_軸要素より大きい要素ならび),
        整列(_軸要素より小さいか等しい要素ならび,_整列した軸要素より小さいか等しい要素ならび),
        整列(_軸要素より大きい要素ならび,_整列した軸要素より大きい要素ならび),
        append(_整列した軸要素より小さいか等しい要素ならび,[_軸要素|_整列した軸要素より大きい要素ならび],_整列したLines).
        
軸要素で分割する([],[],[]).
軸要素で分割する(_軸要素,[A|R],[A|R1],R2) :-
        A @=< _軸要素,
        軸要素で分割する(_軸要素,R,R1,R2).
軸要素で分割する(_軸要素,[A|R],R1,[A|R2]) :-
        A @> _軸要素,
        軸要素で分割する(_軸要素,R,R1,R2).