うーん
脳がC言語的
let untabify n str =
let len = String.length str in
let bufi = ref 0 in
let linei = ref 0 in
let buf = Buffer.create 256 in
for i = 0 to len-1 do
let c = String.get str i in
match c with
'\n' -> (Buffer.add_char buf '\n'); linei := 0
| '\t' ->
begin
Buffer.add_char buf ' ';
incr linei;
while (!linei mod n) != 0 do
Buffer.add_char buf ' ';
incr linei
done;
end
| _ -> (Buffer.add_char buf c); incr linei
done;
Buffer.contents buf;;