このディレクトリの索引
#  
#  リストの最大値と順序を崩さずそれを取り除いたリストを返す述語を定義しなさい。
#  


リストの最大値とそれを取り除いたリスト([_先頭要素|R1],_最大値,L1) :-
        リストの最大値とそれを取り除いたリスト([_先頭要素|R1],_先頭要素,_最大値,L1).

リストの最大値とそれを取り除いたリスト([],_最大値,_最大値,[]) :- !.
リストの最大値とそれを取り除いたリスト([_最大値|R],_現時点での最大値,_最大値,L1_1) :-
        _最大値 >= _現時点での最大値,
        最大値(R,_最大値,_最大値_1,L1_1),
        _最大値 >= _最大値_1,!.
リストの最大値とそれを取り除いたリスト([A|R],_現時点での最大値,_最大値,[A|L1]) :-
        リストの最大値とそれを取り除いたリスト(R,_現時点での最大値,_最大値,L1).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

リストの最大値とそれを取り除いたリスト(L,_最大値,_最大値を除いたリスト) :-
        append(L0,[_最大値|R],L),
        \+((member(E0,L0),E0 > _最大値)),
        \+((member(ER,R),ER > _最大値)),
        append(L0,R,_最大値を取り除いたリスト).