下記のような重複のある数列を入力として, 重複なしの昇順のソートをして, 数と 出現回数を出力せよ.
[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2,7,9,5,0,2,
8,8,4,1,9,7,1,6,9,3,9,9,3,7,5,1,0,5,8,2,0,9,7,4,9,4,4,5,9,2,3,0,7,
8,1,6,4,0,6,2,8,6,2,0,8,9,9,8,6,2,8,0,3,4,8,2,5,3,4,2,1,1,7,0,6,9]
なおデータは, 下図のようにソース上でゴール data:sort(X)
と指定し,data.kl1を一緒にコンパイルすることで得られる.)
ソース上で,
:- module main.
main :- data:sort(X), my_sort(X).
my_sort(X) :- ... .
にて, 次のようにコンパイル実行する.
% klic my_prog.kl1 data.kl1
なお, data.kl1 の中身は次のようになっている.
:- module data.
sort(X) :- true |
X = [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2,7,9,5,0,2,
8,8,4,1,9,7,1,6,9,3,9,9,3,7,5,1,0,5,8,2,0,9,7,4,9,4,4,5,9,2,3,0,7,
8,1,6,4,0,6,2,8,6,2,0,8,9,9,8,6,2,8,0,3,4,8,2,5,3,4,2,1,1,7,0,6,9].