このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1322562648/378
#  [1] 授業単元:C言語入門 
#  [2] 問題文(含コード&リンク):↓ 
#   
#  文字列操作のライブラリ関数を使用して、指定したファイルで、 
#  最も辞書順(ASCIIコード順)で最初に出てくる単語と、最後に出てくる単語を見つけて表示せよ。また、最も長い単語も表示せよ。 
#  ・同じ長さの単語が複数ある場合には、最初に見つけたものだけ表示するだけでよい。 
#  ・ただし,ここでいう単語とは、スペースや改行、タブで区切られる文字の列で必ずしも、英数字とはかぎらない。(このような区切りで、ファイルから文字列を読むために%sを用いる) 
#  ・単語の長さは100文字以内と考えてよい。 
#  ・標準文字列関数を利用すること。 
#   
#  (指定されたファイルとは普通の英文が書かれた.txtファイルです) 
#  実行例 
#  $./quiz10-2 
#  Input file name!:sample.txt 
#  file1 open Error sample.txt 
#  $ 
#  $./quiz10-2 
#  Input file name!:English.txt 
#  The First word = 's 
#  The Last word = yokozuna 
#  The Longest word = accomplishment. 
#   
#  

'指定したファイルで、最も辞書順(ASCIIコード順)で最初に出てくる単語と、最後に出てくる単語を見つけて表示せよ。また、最も長い単語も表示せよ'(_ファイル) :-
        get_lines(_ファイル,Lines),
        concat_atom(Lines,' ',_文字列),
        split(_文字列,[' ','\t'],L1),
        sort(L1,L),
        '最初に出てくる単語と、最後に出てくる単語を見つけて表示せよ。また、最も長い単語も表示せよ'(L).

'最初に出てくる単語と、最後に出てくる単語を見つけて表示せよ。また、最も長い単語も表示せよ'(L) :-
        最初に出てくる単語(L,_最初に出てくる単語),
        最後に出てくる単語(L,_最後に出てくる単語),
        最も長い単語も表示せよ'(L,_最も長い単語),
        表示する(_最初に出てくる単語,_最後に出てくる単語,_最も長い単語).

最初に出てくる単語([_最初に出てくる単語|_],_最初に出てくる単語).

最後に出てくる単語(L,_最後に出て切る単語) :-
        append(_,[_最後に出てくる単語],L).

最も長い単語も表示せよ(L,_最も長い単語) :-
        最も長い単語も表示せよ(L,0,'',_最も長い単語).

最も長い単語も表示せよ([],_,_最も長い単語,_最も長い単語) :- !.
最も長い単語も表示せよ([_単語|R],_これまでの最長文字数,_これまでの最長文字列,_最も長い単語) :-
        atom_length(_単語,_文字数),
        _文字数 > _これまでの最長文字数,
        最も長い単語も表示せよ(R,_文字数,_単語,_最も長い単語),!.
最も長い単語も表示せよ([_|R],_これまでの最長文字数,_これまでの最長文字列,_最も長い単語) :-
        最も長い単語も表示せよ(R,_これまでの最長文字数,_これまでの最長文字列,_最も長い単語).

表示する(_最初に出てくる単語,_最後に出てくる単語,_最も長い単語) :-
        writef('最初に出てくる単語 = %t\n最後に出てくる単語 = %t\n_最も長い単語 = %t\n',[_最初に出てくる単語,_最後に出てくる単語,_最も長い単語]).

辞書順序(1,ァ). 辞書順序(2,ア). 辞書順序(3,ぁ). 辞書順序(4,あ). 辞書順序(5,ィ). 辞書順序(6,イ). 辞書順序(7,ぃ). 辞書順序(8,い). 辞書順に整列(_語彙ならび,_辞書順語彙ならび) :- 辞書順序コードならびに変換(_語彙ならび,_辞書順序コードならび), sort(_辞書順序コードならび,_整列済み辞書順序コードならび), 辞書順語彙ならびに変換(_整列済み辞書順序コードならび,_辞書順語彙ならび). 辞書順序コードならびに変換(_語彙ならび,_辞書順序コードならび) :- findall(_辞書順序語彙コード,( member(_語彙,_語彙ならび),