このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/786
#  C言語 
#  gcc 
#  Linux 
#  問題:cat関数を作りなさい。ただし、fgets,fputsを用いること。です。 
#   
#  明日のお昼までにお願いします。 
# 
# 

cat :-
        user_parameters([]),
        get_code(user_input,Code),
        ストリームから読み取り書き出す(user_input,Code),!.
cat :-
        user_parameters(L),
        append(_,[File|R],L),
        ファイルを書き出す(File),
        R = [],!.

ファイルを書き出す(File) :-
        open(File,read,Instream),
        get_code(Instream,Code),
        ストリームから読み取り書き出す(Instream,Code),
        close(Instream).

ストリームから読み取り書き出す(_,-1) :- !.
ストリームから読み取り書き出す(Instream,Code_1) :-
        put_code(Code_1),
        get_code(Instream,Code_2),
        ストリームから読み取り書き出す(Instream,Code_2).

user_parameters(UserParameterList) :-
        current_prolog_flag(argv,ParameterList),
        append(_,['--'|UserParameterList],ParameterList).

%
%  SWI-Prologの起動は
%  # swipl -t cat -f プログラムファイル名 -- ファイル1 ファイル名2 ... 
%