このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1269438098/681
#  [1] 授業単元: プログラム 
#  [2] 問題文(含コード&リンク): 以下のようにプログラムを作成してください。バブルソートという名前です 
#  0に34 1に3 2に11 3に28 4に17が入っています。 
#  (1)0番と1番の値を比べ、0番が大きいなら、入れ替える→(2)順に1番と2番、2番と3番…と比べて、(1)と同様の処理を行う→(3)端まで行ったら0番に戻って、n-1番までで(1)と(2)を繰り返す(ここの例ではn=4) 
#  

バブルソート(L1,L2) :- バブルソート(L1,[],L2).

バブルソート([],L,L) :- !.
バブルソート([A|R1],L1,L) :- バブルソート(A,R1,R2,L1,L2),バブルソート(R2,L2,L).
        
バブルソート(A,[],[],L1,[A|L1]) :- !.
バブルソート(A,[B|R1],[A|R2],L1,L2) :- A @=< B,バブルソート(B,R1,R2,L1,L2).
バブルソート(A,[B|R1],[B|R2],L1,L2) :- A @> B,バブルソート(A,R1,R2,L1,L2),!.