OCaml相当于f#“%A”

时间:2016-03-12 01:57:55

标签: ocaml

在F#中,以下是没有道理的:

Form

其中“%A”打印几乎任何常见甚至递归数据结构的格式化版本。

ocaml中有类似的东西吗?

1 个答案:

答案 0 :(得分:2)

有一些东西接近,%a指定者接受两个参数,第一个是类型'a的漂亮打印机,第二个是类型'a的值。打印机的类型取决于使用的printf功能的类型。例如,

open Core_kernel.Std
open Format

printf "%a" Int63.pp Int63.one

当然,这在很大程度上取决于图书馆的良好支持。如果没有提供类型的pp函数,那么它就没用了。

还有一个custom_printf语法扩展可用于 - pp和ppx。在此扩展中,您将模块名称放在特定位置。该模块必须具有to_string功能。 ppx版本在格式字符串之前需要一个感叹号:

printf !"%{Int63}" Int63.one

还有一个转储功能,可通过Internet获得。特别是你可以在Batteries库中找到它。它递归数据表示并以或多或少的人类可读表示形式打印它。但这与格式化输出无关。