このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/379
#  どなたか入力された英大文字、英小文字、数字、改行の数を数えるプログラム書いてください。  自分ではなぜかうまくいかないので、参考にしたいのでお願い 
# 
# 

'英大文字、英小文字、数字、改行の数を数える'(_文字列,_英大文字の数,_英小文字の数,_数字の数,_改行の数) :-
        atom_chars(文字列,Chars),
        '文字ならびの英大文字、英小文字、数字、改行の数を数える'(Chars,_英大文字の数,_英小文字の数,_数字の数,_改行の数).

'文字ならびの英大文字、英小文字、数字、改行の数を数える'([],0,0,0,0).
'文字ならびの英大文字、英小文字、数字、改行の数を数える'([_文字|R1],_英大文字の数,_英小文字の数,_数字の数,_改行の数) :-
        '文字ならびの英大文字、英小文字、数字、改行の数を数える'(R1,_英大文字の数_1,_英小文字の数_1,_数字の数_1,_改行の数_1),
        文字数加算(_文字,_英大文字の数_1,_英小文字の数_1,_数字の数_1,_改行の数_1,_英大文字の数,_英小文字の数,_数字の数,_改行の数).

文字数加算('\n',_英大文字の数,_英小文字の数,_数字の数,_改行の数_1,_英大文字の数,_英小文字の数,_数字の数,_改行の数) :-
        _改行の数 is _改行の数_1 + 1,!.
文字数加算(_文字,_英大文字の数_1,_英小文字の数,_数字の数,_改行の数,_英大文字の数,_英小文字の数,_数字の数,_改行の数) :-
        _文字 @>= 'A',
        _文字 @=< 'Z',
        _英大文字の数 is _英大文字の数_1 + 1,!.
文字数加算(_文字,_英大文字の数,_英小文字の数_1,_数字の数,_改行の数,_英大文字の数,_英小文字の数,_数字の数,_改行の数) :-
        _文字 @>= 'a',
        _文字 @=< 'z',
        _英小文字の数 is _英小文字の数_1 + 1,!.
文字数加算(_文字,_英大文字の数,_英小文字の数,_数字の数_1,_改行の数,_英大文字の数,_英小文字の数,_数字の数,_改行の数) :-
        _文字 @>= '0',
        _文字 @=< '9',
        _数字の数 is _数字の数_1 + 1,!.