如何编写函数`compare:'a - > 'a - > OCaml中的int`?

时间:2014-02-28 15:38:09

标签: ocaml

嗯,这个问题的标题解释了。

Pervasives中,compare功能属于外部。

如果我被要求在OCaml中实现这样的功能怎么办?那可能吗?

1 个答案:

答案 0 :(得分:4)

这是不可能的。

我们无法在具有多态性的OCaml函数中实现并检查与类型参数对应的数据。 Obj模块可以实现这一点,但它“不是OCaml语言的一部分”(X.Leroy)。

Pervasives.compare在C中实现,可以使用Obj模块以类似方式实现。它依赖于OCaml值的运行时表示,因此无需额外标记就无法在每种类型的基础上自定义订单。