このディレクトリの索引

昇順にm番目(L1,_m番目,L) :-
        昇順にm番目(L1,0,_m番目,L).

昇順にm番目([E|R],_m番目_1,_m番目,L) :-
        _m番目 >= _m番目_1,
        昇順にm番目(R,E,[],[],_m番目_1,_m番目,L).

昇順にm番目([],E,L1,L2,_m番目_1,_m番目,L) :-
        length(L1,Len),
        _m番目 =< _m番目 + Len,
        昇順にm番目(L1,_m番目_1,_m番目,L).
昇順にm番目([],L,L1,L2,_m番目_1,_m番目,L) :-
        length(L1,Len),
        _m番目 is _m番目_1 + Len + 1.
昇順にm番目([],E,L1,L2,_m番目_1,_m番目,L) :-
        _m番目 >= _m番目_1,
        length(L1,Len1),
        _m番目2 is _m番目_1 + Len1 + 1,
        昇順にm番目(L2,_m番目2,_m番目,L) .
昇順にm番目([A|R1],B,L1,L2,_m番目_1,_m番目,L) :-
        A @=< B,
        昇順にm番目(R1,B,[A|L1],L2,_m番目_1,_m番目,L).
昇順にm番目([A|R1],B,L1,L2,_m番目_1,_m番目,L) :-
        A @> B,
        昇順にm番目(R1,B,L1,[A|L2],_m番目_1,_m番目,L).