このディレクトリの索引

相対番号を付加して降順に整列する(_対象ならび,_降順に整列したならび) :- 相対番号を付加する(1,_対象ならび,_相対番号付きならび), 相対番号を付加されたならびを降順に整列する(_相対番号付きならび,_降順に整列した相対番号付きならび), 相対番号を鍵に対象ならびから降順に整列したならびを得る(_降順に整列した相対番号付きならび,_対象ならび,_降順に整列したならび). 相対番号を付加する(_,[],[]). 相対番号を付加する(N,[A|R1],[[A,N]|R2]) :- N_2 is N + 1, 相対番号を付加する(N_2,R1,R2). 相対番号を付加されたならびを降順に整列する([],[]). 相対番号を付加されたならびを降順に整列する([[_軸要素,_相対番号]|_残り要素],_降順に整列した相対番号付きならび) :- 降順分割([_軸要素,_相対番号],_残り要素,_軸要素より大きい要素のならび,_軸要素に等しいか小さい要素のならび), 相対番号を付加されたならびを降順に整列する(_軸要素より大きい要素のならび,_降順に整列した軸要素より大きい要素のならび), 相対番号を付加されたならびを降順に整列する(_軸要素に等しいか小さい要素のならび,_降順に整列した軸要素に等しいか小さい要素のならび), append(_降順に整列した軸要素より大きい要素のならび,[[_軸要素,_相対番号]|_降順に整列した軸要素に等しいか小さい要素のならび],_降順に整列した相対番号付きならび). 降順分割(_,[],[],[]). 降順分割(_軸要素,[_要素|R1],[_要素|R2],R3) :- _要素 @> _軸要素, 降順分割(_軸要素,R1,R2,R3). 降順分割(_軸要素,[_要素|R1],R2,[_要素|R3]) :- _要素 @=< _軸要素, 降順分割(_軸要素,R1,R2,R3). 相対番号を鍵に対象ならびから降順に整列したならびを得る([],_,[]). 相対番号を鍵に対象ならびから降順に整列したならびを得る([[_,_nth1]|R1],_対象ならび,[_対象ならび要素|R2]) :- nth1(_nth1,_対象ならび,_対象ならび要素), 相対番号を鍵に対象ならびから降順に整列したならびを得る(R1,_対象ならび,R2).