this question之后,我不知道该怎么想。
在 OCaml 中,如果您执行类似 -1.0**2.0 的操作(因为您需要 float 类型),您将获得 1.00。根据standard order of operations ,结果应该是 -1(如在 python 中)。
我无法找到 OCaml 中运算符优先级的原因或明确定义...
这是因为类型系统吗?或者事实上下面有一个带有 pow 的绑定(bind)?
最佳答案
正如您引用的那一页所说,“一元运算符 - (通常读作“减”)的操作顺序通常是有问题的。” -- 它引用了 Excel 和 bc,认为其与 O'CAML 具有相同的优先级,但也表示“在书面或打印数学中”它的工作方式与 Python 中相同。因此,从本质上讲,对于这个具体问题并没有达成普遍共识。
关于ocaml - 为什么 "**"的绑定(bind)不比 OCaml 中的否定更紧密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937497/