このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1260532772/710
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): 数値には初期値が与えられている。
#                この配列を昇順に並べ替えるプログラムを作成しなさい。
#
# 表示結果: 数値[00]=80
# 数値[01]=40
# 数値[02]=23
# 数値[03]=69
# 数値[04]=10
#
#  ソート後
# 数値[01]=10
# 数値[02]=23
# 数値[03]=40
# 数値[04]=69
# 数値[03]=80 

述語数値を第二引数が昇順になるように定義し直す。その際追番を1から振り直す :-
  findall(_値,数値(_,_値),L1),
  quicksort(L1,L2),
  abolish(数値/2),
  述語数値を第二引数が昇順になるように定義し直す。その際追番を1から振り直す(1,L2).

述語数値を第二引数が昇順になるように定義し直す。その際追番を1から振り直す(_,[]) :- !.
述語数値を第二引数が昇順になるように定義し直す。その際追番を1から振り直す(M,[N|R]) :-
  assertz(数値(M,N)),
  M2 is M + 1,
  述語数値を第二引数が昇順になるように定義し直す。その際追番を1から振り直す(M2,R).