【发布时间】:2020-10-07 12:48:28
【问题描述】:
OCaml 对 BOTH 都有不同的语法:
- 浮点运算与整数运算。浮点运算以点结尾:
+.。 - float 文字与 int 文字。浮点文字以点结尾:
3.。
# 3 + 3;;
- : int = 6
# 3. +. 3.;;
- : float = 6.
# 3. + 3;;
Error: This expression has type float but an expression was expected of type
int
我可以看到使用其中一种机制来消除歧义,但为什么需要两个总是?
例如,我可以看到 . 是 sometimes 在文字末尾需要的情况,但不是为什么 3 +. 3 需要它,因为 OCaml 可以找出我们需要浮点运算,因为我们说我们想要浮点运算。
我正在寻找基于与其他语言功能交互的具体技术理由,而不是来自人体工程学的意见或论据。
【问题讨论】:
标签: compiler-errors ocaml static-typing