了解 OCaml 中使用 Formatter 的漂亮打印
Understanding pretty-printing with Formatter in OCaml
我有这样的格式化程序代码:
let format ff x = Format.fprintf ff "%d" x
它是具有许多其他功能的更大模块 ModuleName
的一部分(我们称其中之一为 add
)。
我知道 ff
参数应该是输出的地方,比如 Format.std_formatter
。
但是,在我执行 #install_printer ModuleName.format;;
然后 运行 之后,比如 let sum = add 1 2
,我发现 utop 已经正确地格式化了它。然而,我从未将任何参数传递给 ff
! OCaml 是否只是默认为 std_formatter
?
OCaml REPL 知道如何使用在 #install_printer
注册的打印机,默认情况下它在 std_formatter 上打印。但是,这是 REPL 的特性,而不是语言的特性。
我有这样的格式化程序代码:
let format ff x = Format.fprintf ff "%d" x
它是具有许多其他功能的更大模块 ModuleName
的一部分(我们称其中之一为 add
)。
我知道 ff
参数应该是输出的地方,比如 Format.std_formatter
。
但是,在我执行 #install_printer ModuleName.format;;
然后 运行 之后,比如 let sum = add 1 2
,我发现 utop 已经正确地格式化了它。然而,我从未将任何参数传递给 ff
! OCaml 是否只是默认为 std_formatter
?
OCaml REPL 知道如何使用在 #install_printer
注册的打印机,默认情况下它在 std_formatter 上打印。但是,这是 REPL 的特性,而不是语言的特性。