10/02/02 04:30:07
>>538
% Prolog (その一)
program :-
user_parameters([_ファイル名]),
'EOFがコントロールZであるファイルの読み込み'(Lines),
tell(_ファイル名),
write_formatted('%10s %4s\n',[名前,年齢]),
'名前・年齢の行表示'(Lines),
told.
'EOFがコントロールZであるファイルの読み込み'(Lines) :-
get_code(Code),
'EOFがコントロールZであるファイルの読み込み'(Code,Lines),!.
'EOFがコントロールZであるファイルの読み込み'(-1,[]) :- !.
'EOFがコントロールZであるファイルの読み込み'(Code,[[_名前,_年齢]|R]) :-
'EOFがコントロールZであるファイルの行読み込み'(Code,RCode,Codes),
atom_codes(Line,Codes),
split(Line,[' ',','],[_名前,_年齢]),
'EOFがコントロールZであるファイルの読み込み'(RCode,R).
'EOFがコントロールZであるファイルの行読み込み'(-1,-1,[]) :- !.
'EOFがコントロールZであるファイルの行読み込み'(26,-1,[]) :- !.
'EOFがコントロールZであるファイルの行読み込み'(10,Code2,[]) :-
ひとつ先読みが同時に終了ステータスにもなる(Code2),!.
'EOFがコントロールZであるファイルの行読み込み'(Code1,RCode,[Code1|R]) :-
get_code(Code2),
'EOFがコントロールZであるファイルの行読み込み'(Code2,RCode,R).