10/01/26 07:31:28
>>418
% Prolog (その二) >>435は改行位置を間違えた行が数行あります。
平均値からの隔たりによる整列([X|Xs],_平均値,Ys) :-
U is X - _平均値,
平均値からの隔たりにより分割する(Xs,U,_平均値,Littles,Bigs),
平均値からの隔たりによる整列(Littles,_平均値,Ls),
平均値からの隔たりによる整列(Bigs,_平均値,Bs),
append(Ls,[X|Bs],Ys) .
平均値からの隔たりによる整列([],_,[]).
平均値からの隔たりにより分割する([X|Xs],Y,_平均値,[[U,X]|Ls],Bs) :-
U is X - _平均値,
U =< Y,
平均値からの隔たりにより分割する(Xs,Y,_平均値,Ls,Bs),!.
平均値からの隔たりにより分割する([X|Xs],Y,_平均値,Ls,[[U,X]|Bs]) :-
U is X - _平均値,
U > Y,
平均値からの隔たりにより分割する(Xs,Y,_平均値,Ls,Bs) .
平均値からの隔たりにより分割する([],Y,_,[],[]).
整列した整数をスペース1つのみあけて1行で出力する([]) :- !.
整列した整数をスペース1つのみあけて1行で出力する([[A,B]]) :- write_formatted('%t\n',[A]) :- !.
整列した整数をスペース1つのみあけて1行で出力する([[B,A]|R]) :-
write_formatted('%t ',[A]),
整列した整数をスペース1つのみあけて1行で出力する(R)