我正在定义一个新类型,它基本上是一个字符串。如何打印值?# type mytp = Mytp of string;;# let x = Mytp "Hello Ocaml";;# print_endline x;;
Error: This expression has type mytp but an expression was还有另一个类似
在print_int中有一系列的函数,比如print_endline和Printf。我不能做这样的事print n;; (* And I haven't to change `print` in case type of `n` changed *)
这是多态打印相反,我们有由程序员显式定义的类C类型。所以我认为OCaml在编译过程中丢失了类型信息,并且在运行时没有这些信息,对
假设我有自己的数据结构,作为一个愚蠢的例子,type 'a mylist = Empty | Cons of 'a * ('a mylist)。我希望toplevel以{a,b,...}的形式打印这个列表。在这里,a、'a类型的b是根据安装在带有#install_printer的toplevel中的打印函数打印的,或者如果没有可用的话,则<e