ocaml - 为什么 "**"的绑定(bind)不比 OCaml 中的否定更紧密?

标签 ocaml

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/

相关文章:

ocaml - ocaml 中的粉状机器

f# - 使用正确的副作用顺序在 OCaml/F# 中重新实现 List.map?

ocaml - OCaml 中代码执行的奇怪顺序

haskell - 是否有可能在 Haskell 98 中获得无限种类的错误?

Java版OCaml下划线

if-statement - 简单 if-then-else 中的 Ocaml 语法错误

makefile - 构建 OCaml 交叉编译器 - 配置部分

file-io - 一元文件 I/O

ocaml - 如何从 OCaml 中的文本文件中逐行读取?

f# - 在 F#/OCaml 中实现类似快速排序的函数的尾递归版本