このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/115
#  [1] 授業単元:  
#  [2] 問題文(含コード&リンク):  
#  大量に数値が書き込まれているa.csvとb.csv(数値の数は同じ)をまず読み込み、中を参照していく 
#  a.csvで100以上の数値が確認された場合,b.csvの同位置の数値を調べ、その値も100以上だった場合にはa.csvのその位置の値を0に書き換える 
#  最終的に補正が完了したa.csvをc.csvとしてはきだす、というプログラムの作成 
#  できれば実行前にプログラムの一部を書き換えることでa.csvのどの列を参照するのかを指定できるようにしてもらいたいです 
#   

'大量に数値が書き込まれているa.csvとb.csv(数値の数は同じ)をまず読み込み、中を参照していく。a.csvで100以上の数値が確認された場合,b.csvの同位置の数値を調べ、その値も100以上だった場合にはa.csvのその位置の値を0に書き換える。最終的に補正が完了したa.csvをc.csvとしてはきだす' :-
        get_split_lines('a.csv',LL1),
        get_split_lines('b.csv',LL2),
        findall(Line3,(
                    append(L01,[L1|R1],LL1),
                    append(L02,[L2|R2],LL2),
                    length(L01,Len),
                    length(L02,Len),
                    '同一位置要素がともに100以上の時は0に更新'(L1,L2,Line3)),
                LL3),
        'c.csvとしてはきだす'(LL3),!.

'同一位置要素がともに100以上の時は0に更新'([],[],[]) :- !.
'同一位置要素がともに100以上の時は0に更新'([A|R1],[B|R2],[0|R3]) :-
        A >= 100,
        B >= 100,
        '同一位置要素がともに100以上の時は0に更新'(R1,R2,R3).
'同一位置要素がともに100以上の時は0に更新'([A|R1],[B|R2],[A|R3]) :-
        '同一位置要素がともに100以上の時は0に更新'(R1,R2,R3).

'c.csvとしてはきだす'(LL3) :-
        open('c.csv',write,Outstream),
        append(_,[L|R],LL3),
        concat_atom(L,',',S),
        write_formatted(Outstream,'%t\n',[S]),
        R = [],
        close(Outstream).