这个问题在这里已有答案:
标题说。
在OCaml中,您可以执行1 + 1而不是1.0 + 1.0
我有点得到这个,'+'是一个带有两个int参数的函数。
但为什么我们有'>'适用于float和int?
这种不一致吗?
好吧,请注意'>'适用于任何一种类型的两个值。这不仅仅是数字。
但是,多态比较运算符是OCaml中的一种特殊情况。从理论上讲,不应该定义这样的函数,因为没有先验的方法来“查看”具有任意类型的值。然而,无论如何都存在这些功能,因为它们非常有用。
它们也有些危险,许多OCaml专家建议对它们非常小心。
这里有一些限制的讨论:Does compare work for all types?