このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/236
#  [1] C言語プログラミング演習 
#  [2] 標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換するプログラム 
#  (コマンドラインに 2 4 2 4 を与えた場合タブを入力したら3 7 10 17 20 27...が桁位置に 
#  なるようスペースを挿入する) 
#  入力は半角文字に限って良い。またコマンドラインからは正の整数を表すものが 
#  与えられるとして良い 
#  [3] Windows vista/Borland C++ 5.5/C言語でコード 
#  制限:fgetsを使う。 
#  [4] できるだけ早く 
# 
# 

標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する :-
    user_paramegers(L),
    findall(N,(member(A,L),atom_to_term(A,N,_)),L2),
    get_chars(Chars),
    標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する(_タブストップサイクル,_タブストップサイクル,Chars,X).

標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する([],_タブストップサイクル,L2,L3) :-
    標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する(_タブストップサイクル,_タブストップサイクル,L2,L3),!.

標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する(_,_,[],[]) :- !.
標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する([N|R1],_タブストップサイクル,['\t'|R2],L) :-
    length(L2,N),
    all(L2,' '),
    append(L2,L3,L),
    標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する(R1,_タブストップサイクル,R2,L3),!.
標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する([N|R1],_タブストップサイクル,[A|R2],[A|R3]) :-
    \+(A='t'),
    標準入力の文字列に含まれるタブをコマンドラインで与えたサイクルのタブストップでスペースに変換する([N|R1],_タブストップサイクル,R2,R3).