このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1322562648/292
#  【質問テンプレ】 
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク):多重配列を降順ソートする 
#  

多重ならびを降順ソートする([],[]) :- !.
多重ならびを降順ソートする([A|R1],L) :-
        多重ならびを降順ソートする(A1,A2),
        分割(A2,R1,L1,L2),
        多重ならびを降順ソートする(L1,L11),
        多重ならびを降順ソートする(L2,L22),
        append(L11,[A2|L22],L),!.

分割(A,[],[],[]).
分割(A,[B|R],L1,L2) :-
        list(B),
        多重ならびを降順にソートする(B,B2),
        分割_2(A,[B2|R],L1,L2),!.
分割(A,[B|R],L1,L2) :-
        \+(list(B)),
        分割_2(A,[B|R],L1,L2).

分割_2(A,[],[],[]) :- !.
分割_2(A,[B|R],[B|R2],R3) :-
        B @>= A,
        分割(A,R,R2,R3),!.
分割_2(A,[B|R],R2,[B|R3]) :-
        B @< A,
        分割(A,R,R2,R3).