如何使用Format.fprintf函数返回漂亮的打印字符串?

时间:2016-06-22 15:52:41

标签: ocaml pretty-print

我正在尝试理解并使用Format.fprintf作为模块中的一段代码。 我有这样的功能

let some_function fmt s = match s with
  | For(exp,_) -> Format.fprintf fmt "something here"
  | Assume x-> Format.fprintf fmt "something here as well"

我想修改此函数以返回字符串。 Printf.sprintf不是一个选项,因为我在原始代码中使用了一些漂亮的打印机。请帮忙。

1 个答案:

答案 0 :(得分:3)

使用Format.asprintf

let string_of_s = Format.asprintf "%a" some_function s

我不建议使用Format.sprintf,因为它的类型有限。例如,以下内容不进行类型检查:

let string_of_s_ill_typed = Format.sprintf "%a" some_function s