このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1269438098/989 
#  [1] 授業単元:プログラミング演習 
#  [2] 問題文 : 
#  1.テキストファイル(file,txt)を読み込み、 goodという単語すべてをbadに置換し、filea.txtに出力せよ 
#  2.テキストファイル(file,txt)を読み込み、文字数の多い行から順に並べかえてfileb.txtに出力せよ 
# 

'テキストファイル(file,txt)を読み込み、 goodという単語すべてをbadに置換し、filea.txtに出力せよ' :-
        get_lines('file.txt',Lines),
        findall(Line2,(member(Line,Lines),replace_all(Line,good,bad,Line2)),Lines2),
        put_lines('filea.txt',Lines2).

'テキストファイル(file,txt)を読み込み、文字数の多い行から順に並べかえてfileb.txtに出力せよ' :-
        get_lines('file.txt',Lines),
        findall([_文字数,_行],(member(_行,Lines),sub_atom(_行,_,_文字数,_,_行)),L1),
        sort(L1,L2),
        第二要素だけ選択してならびを反転する(L2,[],L3),
        put_lines('fileb.txt',L3).

第二要素だけ選択してならびを反転する([],L,L) :- !.
第二要素だけ選択してならびを反転する([[_,A|_]|R1],L1,L) :-
        第二要素だけ選択してならびを反転する(R1,[A|L1],L).

replace_all('',_,_,[]) :- !.
replace_all(Atom,Subatom,R_atom,[R_atom|R]) :-
        sub_atom(Atom,0,Len,Len3,Subatom),
        sub_atom(Atom(Len,Len3,_,Atom2),
        replace_all(Atom2,Subatom,R_atom,R),!.
replace_all(Atom,Subatom,R_atom,[Atom1,R_atom|R]) :-
        sub_atom(Atom,_,_,_,Atom1,Subatom,Atom2,_,_,_),
        replace_all(Atom2,Subatom,R_atom,R),!.
replace_all(Atom,_,_,[Atom]).