>>502
% Prolog http://nojiriko.asia/prolog/t502.html

入力文字列長の比較 :-
  write('文字列A ? '),
  get_line(A),
  write('文字列B ? '),
  get_line(B),
  名前付き文字列長さの診断(文字列A,A,文字列B,B,_診断),
  write_formatted('%t\n',[_診断).

名前付き文字列長の診断(_名前1,_文字列1,_名前2,_文字列2,_診断) :-
  atom_chars(_文字列1,L1),
  atom_chars(_文字列2,L2),
  length(L1,_長さ1),
  length(L2,_長さ2),
  _長さの差 is _長さ1 - _長さ2
  名前付き文字列長の診断の二(_名前1,_名前2,_長さの差,_診断),!.

名前付き文字列長の診断の二(_,_,0,'二つの文字列は同じです。') :- !.
名前付き文字列長の診断の二(_名前1,_名前2,_長さの差,_診断) :-
  _長さの差 > 0,
  concat_atom([_名前1,の方が,_長さの差,文字長いです。],_診断),!.
名前付き文字列長の診断の二(_名前1,_名前2,_長さの差,_診断) :-
  _長さの差 < 0,
  _長さの差1 is abs(_長さの差),
  concat_atom([_名前2,の方が,_長さの差1,文字長いです。],_診断).