このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1325685876/829
#  プログラムに以下の機能を追加したプログラムを作成する. 
#  (1) 各行ごとに1バイト空白 ' ',または,タブ '\t' で区切られた部分文字列が何個あるかカウントする関数を作成し, 
#    出力の際に,行番号の右側に表示する.(画面表示の例) 
#  (2) 結果を画面表示すると共に,同等の内容をファイルに書き出す. 
#    ファイル形式は HTML ファイル(.html)とすること. 
#    ・ただし,HTMLファイルに用いるタグは FireFox や Safari などで,それなりの表示が得られる程度で良い 
#   
#  #include <stdio.h> 
#  #include <stdlib.h> 
#  int main (void){ char fileName[] = "14-1.c"; 
#   FILE *f; 
#   f=fopen(fileName, "r"); 
#   if(f==NULL){ 
#   printf("ファイルが開けませんでした\n"); 
#   exit(EXIT_FAILURE);} 
#   int lineNum=1; 
#   char str[256]; 
#   while(fgets(str,255,f) !=NULL){ 
#    printf("%03d :%s",lineNum,str); 
#    lineNum++;} 
#   printf("\n"); 
#   char* line = "--------------------------------\n"; 
#   printf("%s",line); 
#   printf("lines:   %d\n",lineNum-1); 
#   printf("%s",line); 
#   fclose(f); 
#   return 0;} 
#  [3]c言語 
#  [4]1/31    よろしくお願いします 
# 
# 

'(1) 各行ごとに1バイト空白または,タブで区切られた部分文字列が何個あるかカウントする関数を作成し,出力の際に,行番号の右側に表示する.'(_ファイル) :-
        各行ごとに(_ファイル,Line,_行番号,R),
        '1バイト空白または,タブで区切られた部分文字列が何個あるかカウントする'(Line,_何個),
        '出力の際に,行番号の右側に表示する'(_行番号,_何個,Line),
        R = [].

各行ごとに(_ファイル,Line,_行番号,R) :-
        get_lines(_ファイル,Lines),
        append(L0,[Line|R],Lines),
        length([_|L0],_行番号).

'1バイト空白または,タブで区切られた部分文字列が何個あるかカウントする'(Line,_何個) :-
        split(Line,[' ','\t'],L),
        length(L,_何個).

'出力の際に,行番号の右側に表示する'(_行番号,_何個,Line) :-
        writef('%t:%t %t\n',[_行番号,_何個,Line]).