Form
其中“%A”打印几乎任何常见甚至递归数据结构的格式化版本。
ocaml中有类似的东西吗?
答案 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库中找到它。它递归数据表示并以或多或少的人类可读表示形式打印它。但这与格式化输出无关。