ocaml - 为什么指数运算符在 OCaml 中使用 float 变量?

标签 ocaml

为什么指数运算符在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/

相关文章:

module - Ocaml破坏性替换错误

interface - OCaml 类型声明中的冗余 (ml/mli)

ocaml - 从 OCaml 程序调用 Mathematica

scala - 为什么 Scala 允许嵌套数据结构,如 List 或 Array

winapi - 找不到用于链接的 Ocamlrun.lib

websocket - OCaml Websocket 示例

f# - 将 OCaml 转换为 F# : Converting OCaml quotation add and quotation expander to F#

functional-programming - 在 OCaml 中是否有一种惯用的方法来执行隐式本地状态?

arm - 适用于 ARM 皮质 M4 的 Ocaml?

size - ocaml 4.01.0 → 4.02.1,二进制大小变大