为什么指数运算符在OCaml中使用浮点变量? 它不应该也允许 int 变量吗?
# 3**3;;
Error: This expression has type int but an expression was expected of type
float
作品:
# 3.0**3.0;;
- : float = 27.
最佳答案
因此,现有的答案是如何解决这个问题,而不是为什么会这样。主要原因有两个:
1) OCaml 没有运算符别名。您不能让两个运算符做“相同的事情”,但针对不同的类型。这意味着只有一种数字、整数或 float (或其他一些表示形式)将使用标准 ** 接口(interface)。
2) pow()
,指数函数历来是在 float 上定义的(例如,在 Standard C 中)。
此外,对于另一种解决问题的方法,如果您使用的是随附的 OCaml 电池,则有一个 pow为整数定义的函数。
关于ocaml - 为什么指数运算符在 OCaml 中使用 float 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22762293/