このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/703
#   
#  レポート課題 
#   
#  標準入力で与えた単語が,指定ファイル中に出現した回数を出力するプログラムを作成せよ.  
#  単語データは以下の構造体を使用し,ハッシュを使用すること 
#  ハッシュ関数は各自で定義してよい 
#  単語は,スペースまたは改行で区切られる文字列とする 
#  ハッシュのサイズはコマンド引数から指定し,作成したハッシュテーブルの偏り具合を表示すること 
#   
#  struct word { 
#    char *str; 
#    int count; 
#    struct word *next; 
#  }; 
#  実行例 
#   
#   $ ./wordcount 13 api.txt 
#   [0]:147 [1]:133 [2]:170 [3]:137[4]:133[5]:132 [6]:160 [7]:167 [8]:136 [9]:154 [10]:142 [11]:149 [12]:125 
#   Word => API 
#   API: 10 
#   Word => virtual 
#   virtual: 33 
#   Word => 0 
#   $ 
#   
#   
#  お願いします。 
# 
# 

'標準入力で与えた単語が,指定ファイル中に出現した回数を出力する'(_指定ファイル) :-
        標準入力で与えた単語が(_標準入力で与えた単語),
        指定ファイル中に出現した回数を(_指定ファイル,_標準入力で与えた単語,_出現した回数),
        出力する(_指定ファイル,_標準入力で与えた単語,_出現した回数).

標準入力で与えた単語が(_標準入力で与えた単語) :-
        get_line(_標準入力で与えた単語).

指定ファイル中に出現した回数を(_指定ファイル,_標準入力で与えた単語,_指定ファイル中に出現した回数) :-
        get_lines(_指定ファイル,Lines),
        count((     member(_行,Lines),
                    sub_atom(_行,_,_,_,_標準入力で与えた単語)),
                _指定ファイル中に出現した回数).

出力する(_指定ファイル,_標準入力で与えた単語,_指定ファイル中に出現した回数) :-
        writef('単語 %t が ファイル "%t" 中に出現した回数は %t です。\n',[_標準入力で与えた単語,_指定ファイル,_指定ファイル中に出現した回数]).


count/2