我正在尝试理解并使用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不是一个选项,因为我在原始代码中使用了一些漂亮的打印机。请帮忙。
答案 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