このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1307166756/908
#  [1] 授業単元:C  
#  [2] 問題文(含コード&リンク):  
#  strcmp()を利用し、../test/read.cgi/tech/1307166756/904で利用したものと同様のimput.txtを読み込む。 
#  キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力するプログラムを作成しなさい。 
#  

'キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力する' :-
        'キーボードから英単語を1つ入力し'(_英単語),
        'その単語が、input.txtに何個含まれるかを出力する'(_英単語).

'キーボードから英単語を1つ入力し'(_英単語) :-
        get_line(_英単語).

'その単語が、input.txtに何個含まれるかを出力する'(_英単語) :-
        'その単語が、input.txtに何個含まれるか'(_英単語,_何個),
        出力する(_英単語,_何個).

'その単語が、input.txtに何個含まれるか'(_英単語,_何個) :-
        get_chars('input.txt',Chars),
        concat_atom(Chars,S),
        split(S,[' ','\n'],_単語ならび),
        count(member(_英単語,_単語ならび),_何個).

出力する(_英単語,_何個) :-
        writef('単語 %t は %t個あります。\n',[_英単語,_何個]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

count(P,N) :-
        findsum(1,P,F),
        N is truncate(F).

findsum(_選択項,_項,_合計値) :-
        findall(_選択項,_項,_値ならび),
        sum(_値ならび,_合計値),!.

sum([],0) :- !.
sum([N|R],X) :-
        sum(R,Y),
        X is N + Y.

% split/3の定義