脳が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;;