このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/600
#  [1] 授業単元:C++ 
#  [2] 問題文(含コード&リンク):文字列を入力し含まれる数字の数を調べるcount_num, 
#  含まれる大文字の数を調べるcount_up,含まれる小文字を調べるcount_lowをポインタを使って作れ 
#  http://ime.nu/ideone.com/9YNeC 
#   

count_num(_文字列,_文字列に含まれる数字の数) :-
        文字列を入力し含まれる数字の数を調べる(_文字列,_文字列に含まれる数字の数).

文字列を入力し含まれる数字の数を調べる(_文字列,_文字列に含まれる数字の数) :-
        count((     sub_atom(文字列,_,1,_,_文字),
                    数字(_文字)),
                _文字列に含まれる漢字の数).

数字(_文字) :-
        _文字 @>= '0',
        _文字 @=< '9'.

count_up(_文字列,_文字列に含まれる大文字の数) :-
        文字列を入力し含まれる大文字の数を調べる(_文字列,_文字列に含まれる大文字の数).

文字列を入力し含まれる大文字の数を調べる(_文字列,_文字列に含まれる大文字の数) :-
        count((     sub_atom(_文字列,_1,_,_文字),
                    大文字(_文字)),
                _文字列に含まれる大文字の数).

大文字(_文字) :-
        _文字 @>= 'A',
        _文字 @=< 'Z'.

count_low(_文字列,_文字列に含まれる大文字の数) :-
        文字列を入力し含まれる小文字の数を調べる(_文字列,_文字列に含まれる小文字の数).

文字列を入力し含まれる小文字の数を調べる(_文字列,_文字列に含まれる小文字の数) :-
        count((     sub_atom(_文字列,_1,_,_文字),
                    小文字(_文字)),
                _文字列に含まれる大文字の数).

小文字(_文字) :-
        _文字 @>= 'a',
        _文字 @=< 'z'.


%  count/2
%
%  私のように具体的な述語名を選択する場合、それなら抽象とはどう向き合うのかという
%  課題を背負うことになる。たとえばここでは、
%
%  count_low(_文字列,_文字列に含まれる大文字の数) :-
%          文字列を入力し含まれる小文字の数を調べる(_文字列,_文字列に含まれる小文字の数).
%
%  意味: count_lowとは、文字列を入力し含まれる小文字の数を調べる、ことだ。
%
%  としたが、
%
%  文字列を入力し含まれる小文字の数を調べる(_文字列,_文字列に含まれる小文字の数) :-
%          count_low(_文字列,_文字列に含まれる小文字の数).
%
%  意味: 文字列を入力し含まれる小文字の数を調べるには、実は、count_lowすればよい。
%  もあり得るに違いない。