うーん

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