- 491 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 07:58:33 ]
- >>483
% Prolog 3: ソート方法AはPrologのリスト(ならび)仕様に書き換えました。効率は大変悪い。 'ソート方法 A を用いて配列 COM,MAN の要素をそれぞれ小さい順に並べる'(L1,L2) :- ソート方法A(L1,L2). ソート方法A(L1,L2) :- '作業用のならびとして、要素が100 個の変数であるならびWorkを用意する'(Work), 'ソートしたいならびLの要素を順番に読んで、Work[ その値 ] を1に単一化する'(L1,Work), '全てのLの要素について行った後、変数でないWorkの要素を先頭からならびL2にコピー'(L1,L2). '作業用のならびとして、要素が100 個の変数であるならびWorkを用意する'(Work) :- length(Work,100). 'ソートしたいならびLの要素を順番に読んで、Work[ その値 ] を1に単一化する'([],Work) :- !. 'ソートしたいならびLの要素を順番に読んで、Work[ その値 ] を1に単一化する'([N|R1],Work) :- list_nth(N,Work,1), 'ソートしたいならびLの要素を順番に読んで、Work[ その値 ] を1に単一化する'(R1,Work),!. '全てのLの要素について行った後、変数でないWorkの要素を先頭からならびL2にコピー'([],[]) :- !. '全てのLの要素について行った後、変数でないWorkの要素を先頭からならびL2にコピー'([A|R1],[A|R2]) :- \+(var(A)), '全てのLの要素について行った後、変数でないWorkの要素を先頭からならびL2にコピー'(R1,R2),!. '全てのLの要素について行った後、変数でないWorkの要素を先頭からならびL2にコピー'([V|R1],L2) :- var(V), '全てのLの要素について行った後、変数でないWorkの要素を先頭からならびL2にコピー'(R1,L2).
|

|