いろんな言語で宿題スレat TECH
いろんな言語で宿題スレ - 暇つぶし2ch578:デフォルトの名無しさん
09/07/28 05:04:17
>>577
% Prolog
debug(off).

msort([],[]).
msort([X],[X]).
msort(_ならび,_sortされたならび) :-
  ならびを分割(_ならび,_ならび1,_ならび2),show_list(分割,[_ならび,_ならび1,_ならび2]),
  msort(_ならび1,_整列されたならび1),show_list(msort,[ならび1,_整列されたならび1]),
  msort(_ならび2,_整列されたならび2),show_list(msort,[ならび2,_整列されたならび2]),
  merge(_整列されたならび1,_整列されたならび2,_整列されたならび),show_list(merge,[_整列されたならび1,_整列されたならび2,_整列されたならび]).

ならびを分割([],[],[]).
ならびを分割([X],[X],[]).
ならびを分割([A,B|R1],[A|R2],[B|R3]) :- ならびを分割(R1,R2,R3).

merge([],X,X) :- !.
merge(X,[],X) :- !.
merge([A|R1],[B|R2],[A|R3]) :- A @< B,merge(R1,[B|R2],R3).
merge([A|R1],[B|R2],[B|R3]) :- A @>= B,merge([A|R1],R2,R3).

show_list(_,_) :- debug(off).
show_list(_述語,_ならびのならび) :- debug(on),write_formatted('%t: %t\n',[_述語,_ならびのならび]).


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch