如何使用 Format.fprintf 函数 return 漂亮的打印字符串?
How to return a pretty printed string using Format.fprintf function?
我正在尝试理解 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"
我想将这个函数修改为return一个字符串。 Printf.sprintf 不是一个选项,因为我在原始代码中使用了一些漂亮的打印机。请帮忙。
使用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
我正在尝试理解 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"
我想将这个函数修改为return一个字符串。 Printf.sprintf 不是一个选项,因为我在原始代码中使用了一些漂亮的打印机。请帮忙。
使用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