このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1274827528/880
#  [1] 授業単元:計算機とアルゴリズム  
#  [2] 問題文(含コード&リンク):http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10699.txt  
# 
# 問題4
# 
# 3つの整数 a,b,c を比較し、 それを小さい順に並べて表示するプログラムを作成しなさい。
# 例として a, b, c をそれぞれ 240, 77, 89 としたとき、下のような実行結果を表示するようにしなさい。
# 
# 実行結果
# 
# 240 と 77 と 89 を小さい順に並べ替えます
# 小さい順は 77, 89, 240 です
# 
:- op(600,xfx,と).
:- op(750,xf,を小さい順に並べ替えます).

/*
_a と _b と _c を小さい順に並べ替えます :-
        挿入整列([_a,_b,_c],[_1,_2,_3]),
        write_formatted('小さい順は %t,%t,%t です\n',[_1,_2,_3]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

_a と _b と _c を小さい順に並べ替えます :-
        '3つの整数 a,b,c を比較し、 それを小さい順に並べて'(_a,_b,_c,_1,_2,_3),
        write_formatted('小さい順は %t,%t,%t です\n',[_1,_2,_3]).

'3つの整数 a,b,c を比較し、 それを小さい順に並べて'(_a,_b,_c,_1,_2,_3) :-
        挿入整列([_a,_b,_c],[_1,_2,_3]).
*/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'3つの整数 a,b,c を比較し、 それを小さい順に並べて表示する'(_a,_b,_c) :-
        '3つの整数 a,b,c を比較し、 それを小さい順に並べて'(_a,_b,_c,_1,_2,_3),
        write_formatted('小さい順は %t,%t,%t です\n',[_1,_2,_3]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

挿入整列([],L,L) :- !.
挿入整列([A|R1],L2,L3) :-
        挿入整列_1(A,L2,L4),
        挿入整列(R1,L4,L3).

挿入整列_1(_,[],[]) :- !.
挿入整列_1(A,[B|R1],[A,B|R1]) :- A =< B,!.
挿入整列_1(A,[B|R1],[B|R2]) :- A > B,
        挿入整列_1(A,R1,R2).