出于调试目的,我想在OCaml中有一个函数转换为字符串任意类型,调试器目前有一个,但是有一个很酷.
sexplib库是完美的,但事实是我不能修改我需要添加的所有类型with sexp
,我也不能使用camlp4.
有这样的功能吗?(它不会出现在生产代码上,所以我接受了肮脏的解决方案)
像Haskell的Show
类型类似的东西正是我的意思.
谢谢你的时间
Batteries Included中的Std模块提供了将任意类型转换为可读字符串的功能.它有点受限 - 因为它不知道类型,它不能正确打印变体类型的构造函数并用数字替换它们 - 但它仍然非常有用.由于类型信息在运行时不可用,这与您可以做的一样好.调试器和顶层使用编译器技巧来获得更好的表示,但是如果不是不可能在通用库中执行则很难.dump
我似乎还记得在某个地方看到一个更复杂的转储库,但我不记得在哪里.