いろんな言語で宿題スレ 第三編at TECH
いろんな言語で宿題スレ 第三編 - 暇つぶし2ch370:デフォルトの名無しさん
10/01/20 22:14:25
>>333
% Prolog

'与えられた二つのリストに含まれる文字の並びを辞書式順序(※)で比較し、第一のリストの方が小さければ負の値、大きければ正の値、等しければ0を返す'(_文字リスト_1,_文字リスト_2,_返り値) :-
  compare(_文字リスト_1,_文字リスト_2,_返り値).

compare([],[],0).
compare([],[_|_],-1).
compare([_|_],[],1).
compare([A|_],[B|_],-1) :-
  char_code(A,CodeA),CodeA >= 65,CodeA =< 90,
  char_code(B,CodeB),CodeB >= 97,CodeB =< 122,
  CodeC is CodeB - 32,
  CodeC >= CodeA,!.
compare([A|_],[B|_],1) :-
  char_code(A,CodeA),CodeA >= 97,CodeA =< 122,
  char_code(B,CodeB),CodeB >= 65,CodeB =< 90,
  CodeC is CodeA - 32,
  CodeC =< CodeA,!.
compare([A|_],[B|_],-1) :- A @< B,!.
compare([A|_],[B|_],1) :- A @> B,!.
compare([A|R1],[A|R2],X) :-
  compare(R1,R2,X).


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