嗯,这个问题的标题解释了。
在Pervasives
中,compare
功能属于外部。
如果我被要求在OCaml中实现这样的功能怎么办?那可能吗?
答案 0 :(得分:4)
这是不可能的。
我们无法在具有多态性的OCaml函数中实现并检查与类型参数对应的数据。 Obj
模块可以实现这一点,但它“不是OCaml语言的一部分”(X.Leroy)。
Pervasives.compare
在C中实现,可以使用Obj
模块以类似方式实现。它依赖于OCaml值的运行时表示,因此无需额外标记就无法在每种类型的基础上自定义订单。