OCaml:获取值';s类型名称

OCaml:获取值';s类型名称,ocaml,Ocaml,可以在OCaml中打印值的名称,例如,如果我有 type my_type = | MyType_First of int | MyType_Second of string 然后做一些类似的事情: let my_value = MyType_First 0 in print_string ("my_value is of type " ^ String.from_type my_value ^ ".\n"; 我可以先得到“我的值是MyType_类型的”吗 谢谢。单态溶液: let f

可以在OCaml中打印值的名称,例如,如果我有

type my_type =
  | MyType_First of int
  | MyType_Second of string
然后做一些类似的事情:

let my_value = MyType_First 0 in
print_string ("my_value is of type " ^ String.from_type my_value ^ ".\n";
我可以先得到“我的值是MyType_类型的”吗

谢谢。

单态溶液:

let from_type = function
  | MyType_First _ -> "MyType_First"
  | MyType_Second _ -> "MyType_Second"

多态解决方案:无。(好吧,即使指定了调试标志,与构造函数相对应的词法标记也不会记录在字节码/二进制中。唯一可以做的就是使用一些暗
Obj.magic
打印构造函数的整数“标识符”)

您想要的是一种更简单的通用打印形式,在OCaml中是不可用的,但是存在一些解决方法-例如