このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/161
#  [1] 授業単元:プログラミング言語  
#  [2] 問題文  
#     1.空白、タブ、改行を数えるプログラムを書け。 
#     2.二つ以上の空白を一つの空白に置き換えながら、入力を出力にコピーするプログラムを書け。 
#  

'空白、タブ、改行を数える'(_文字列,_空白数,_タブ数,_改行数) :-
        atom_chars(_文字列,Chars),
        '空白、タブ、改行を数える'(Chars,0,0,0,_空白数,_タブ数,_改行数).

'空白、タブ、改行を数える'([],_空白数,_タブ数,_改行数,_空白数,_タブ数,_改行数).
'空白、タブ、改行を数える'([' '|R],_空白数_1,_タブ数_1,_改行数_1,_空白数,_タブ数,_改行数) :-
        _空白数_2 is _空白数_1 + 1,
        '空白、タブ、改行を数える'(R,_空白数_2,_タブ数_1,_改行数_1,_空白数,_タブ数,_改行数).
'空白、タブ、改行を数える'(['\t'|R],_空白数_1,_タブ数_1,_改行数_1,_空白数,_タブ数,_改行数) :-
        _タブ数_2 is _タブ数_1 + 1,
        '空白、タブ、改行を数える'(R,_空白数_1,_タブ数_2,_改行数_1,_空白数,_タブ数,_改行数).
'空白、タブ、改行を数える'(['\n'|R],_空白数_1,_タブ数_1,_改行数_1,_空白数,_タブ数,_改行数) :-
        _改行数_2 is _改行数_1 + 1,
        '空白、タブ、改行を数える'(R,_空白数_1,_タブ数_1,_改行数_2,_空白数,_タブ数,_改行数).