このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/425
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク): 
#  クイックソート、バブルソート、選択ソートの三種のソート関数 
#  それぞれ、void qusort(int[]), busort(int[]) sesort(int[]),を作れ。 
#    並び順は、降順。ソートした結果は引数配列と同じ配列に返してやる。 
#  

選択ソート([A],[A]) :- !.
選択ソート(L1,[_最小値|R2]) :-
        最小値の抜き取り(L1,_最小値,R1),
        選択ソート(R1,R2).

最小値の抜き取り(L1,_最小値,R1) :-
        append(L0,[_最小値|R2],L1),
        \+((member(D,R2),D < _最小値)),
        append(L0,R2,R1),!.