在OCaml中,hy我们有'+。',' - 。'但我们只使用'

问题描述 投票:1回答:1

标题说。

在OCaml中,您可以执行1 + 1而不是1.0 + 1.0

我有点得到这个,'+'是一个带有两个int参数的函数。

但为什么我们有'>'适用于float和int?

这种不一致吗?

functional-programming ocaml
1个回答
4
投票

好吧,请注意'>'适用于任何一种类型的两个值。这不仅仅是数字。

但是,多态比较运算符是OCaml中的一种特殊情况。从理论上讲,不应该定义这样的函数,因为没有先验的方法来“查看”具有任意类型的值。然而,无论如何都存在这些功能,因为它们非常有用。

它们也有些危险,许多OCaml专家建议对它们非常小心。

这里有一些限制的讨论:Does compare work for all types?

© www.soinside.com 2019 - 2024. All rights reserved.