编写类型为'a - >的函数串

时间:2011-02-07 21:27:57

标签: ocaml

出于调试目的,我想在OCaml中有一个转换为字符串任意类型的函数,调试器目前有一个,但是有一个很酷。

sexplib库是完美的,但事实是我不能修改我需要添加with sexp的所有类型,我也不能使用camlp4。

有没有这样的功能? (它不会出现在生产代码上,所以我接受了肮脏的解决方案)

Haskell的Show类型类似于我的意思。

感谢您的时间

1 个答案:

答案 0 :(得分:5)

Std中的Batteries Included模块提供了dump函数,可将任意类型转换为可读字符串。它有点受限 - 因为它不知道类型,它不能正确打印变体类型的构造函数并用数字替换它们 - 但它仍然非常有用。由于类型信息在运行时不可用,因此这与您可以做的一样好。调试器和顶层使用编译器技巧来获得更好的表示,但是如果不是不可能在通用库中执行则很难。

我似乎还记得在某个地方看到一个更复杂的转储库,但我不记得在哪里。