このディレクトリの索引
% 要素がすべてアトムであるリストがある時、その要素のアトムの表示最大桁を求める。
% ただし、文字コードはEUCとする。

表示最大桁([],_表示最大桁,_表示最大桁).
表示最大桁([_文字列|R],_これまでの表示最大桁,_表示最大桁) :-
        表示桁数(_文字列,_文字列の表示桁数),
        _文字列の表示桁数 > _これまでの表示最大桁,
        表示最大桁(R,_文字列の表示桁数,_表示最大桁).
表示最大桁([_文字列|R],_これまでの表示最大桁,_表示最大桁) :-
        表示桁数(_文字列,_文字列の表示桁数),
        _文字列の表示桁数 =< _これまでの表示最大桁,
        表示最大桁(R,_これまでの表示最大桁,_表示最大桁).

表示桁数(_文字列,_表示桁数) :-
        atom_codes(_文字列,Codes),
        findsum(N,(member(C,Codes),(C > 255,N=2;C =< 255,N=1)),Sum),
        _表示桁数 is truncate(Sum).

% 副目標として、表示桁数/2が重複して呼び出されていて実行速度としては速いとはいえないが、
% わかりやすいコードということから、このコードを採用した。