问题描述
假设您有一个代数数据类型,并且您使用的是庞大的数据结构,那么编写这样的写入函数是否会更有效:
val writer: out_channel -> mygadttype -> unit
递归访问代数数据类型并写入每个节点,或类似:
val print: Format.formatter -> mygadttype -> unit
然后使用 Format.asprintf
写入字符串,然后将该字符串写入文件。
我没有估计数据结构有多大,但在性能方面(和内存方面?),哪个更有效?目标是让结果是人类可读的,所以没有编组
解决方法
您可以使用 Format
直接打印到带有 Format.formatter_of_out_channel
的文件。如果没有更多信息或基准测试,Format
的开销是否重要尚不清楚。