このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 133代目 #159 # '課題1-4'(File,_整列した出現度数ならび) :- 'Fileから文字を読み出してそれを大文字化したものの出現度数ならびを得る'(File,_出現度数ならび), sort(_出現度数ならび,_整列した出現度数ならび). 'Fileから文字を読み出してそれを大文字化したものの出現度数ならびを得る'(File,_出現度数ならび) :- open(File,read,Input), 'Fileから文字を読み出してそれを大文字化したものの出現度数ならびを得る'(Input,[],_出現度数ならび), close(Input). 'Fileから文字を読み出してそれを大文字化したものの出現度数ならびを得る'(Input,_出現度数ならび,_出現度数ならび) :- at_end_of_stream(Input),!. 'Fileから文字を読み出してそれを大文字化したものの出現度数ならびを得る'(Input,_受取リスト,_出現度数ならび) :- 受取文字を大文字化してそれを鍵として度数を更新して行く(Input,_受取文字,受取リスト,_出現度数ならび). 受取文字を大文字化してそれを鍵として更新して行く(Input,_受取文字,受取リスト,_出現度数ならび) :- 受取文字を大文字化してそれを鍵として(Input,_大文字化した文字), 度数を更新して行く(Input,_大文字化した文字,_受取リスト,_出現度数ならび). 度数を更新して行く(Input,_大文字化した文字,_受取リスト,_出現度数ならび) :- 鍵と対の値に1を加える(_大文字化した文字,_受取リスト,_更新されたリスト), 'Fileから文字を読み出してそれを大文字化したものの出現度数ならびを得る'(Input,_更新されたリスト,_出現度数ならび). 受取文字を大文字化してそれを鍵として(Input,_大文字化した文字) :- get_char(Input,_受取文字), _受取文字 @>= ' ', _受取文字 @=< z, to_upper(_受取文字,_大文字化した文字). 鍵と対の値に1を加える(_鍵,_受取ならび,_更新された受取ならび) :- 既に鍵と値の対があれば1を加えて更新する(_鍵,_受取ならび,_更新された受取ならび),!. 鍵と対の値に1を加える(_鍵,_受取ならび,_更新された受取ならび) :- 鍵と対の値がない時は度数1で生成する(_鍵,_受取ならび,_更新された受取ならび). 既に鍵と値の対があれば1を加えて更新する(_鍵,_受取ならび,_更新された受取ならび) :- append(L1,[[_鍵,_度数]|L2],_受取ならび), succ(_度数,_更新された度数), append(L1,[[_鍵,_更新された度数]|L2],_更新された受取ならび). 鍵と対の値がない時は度数1で生成する(_鍵,_受取ならび,[[_鍵,1]|_受取ならび]). to_upper(_小文字,_大文字) :- sub_atom(abcdefghijklmnopqrstuvwxyz,_開始点,1,_,_小文字), sub_atom('ABCDEFGHIJKLMNOPQRSTUVWXYZ',_開始点,1,_,大文字),!. to_upper(_文字,_文字).