このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/196
#  [1] 授業単元:システムコール 
#  [2] 問題文(含コード&リンク):http://codepad.org/XAPpvt1n 
#  
#  コマンドライン引数でファイル名をn個指定し、 ファイル1からファイルn-1まで
#  wcコマンドを使って、ファイルの行数・単語数・バイト数を数えるプログラム。
#  各ファイルごとに、wcコマンドを無引数で実行、
#  その結果をファイルnに書き込むプログラムを書け。  
#  http://codepad.org/2Y5RTFYrを元にせよ

'コマンドライン引数でファイル名をn個指定し、ファイル1からファイルn-1までの内容を連結し、その結果をファイルnに書き込む' :-
        'ファイル名ならび・出力ファイル名の取得'(_オプションならび,_ファイル名ならび,_出力ファイル名),
        wcの実行(_実行ならび),
        出力ファイルへ書きこむ(_出力ファイル,_実行ならび).

'ファイル名ならび・出力ファイル名の取得'(_オプションならび,_ファイル名ならび,_出力ファイル名) :-
        user_parameters(_ユーザパラメータ),
        append(_ファイル名ならび,[_出力ファイル名],_ユーザパラメータ),!.

'ファイル1からファイルn-1までの内容を連結し、その結果をファイルnに書き込む'(_ファイル名ならび,_出力ファイル名) :-
        open(_出力フィル名,write,Outstream),
        順にファイルを呼び出しwcの結果を出力する(Outstream,_ファイル名ならび),
        close(Outstream).

順にファイルを呼び出しwcの結果を出力する(Outstream,_ファイル名ならび) :-
        append(_,[_ファイル名|R],_ファイル名ならび),
        concat_atom(['wc ',_ファイル名],S),
        shs(S,_実行結果),
        writef(Outstream,'%t: %t\n',[_ファイル名,_実行結果]),
        R = [],!.