我认为新手会对“do”感到困惑,我想从语言设计的角度来看它。您不想在新语言生命的这个阶段混淆新手,在这个阶段几乎每个人都是新手,您需要新手来建立社区和临界质量;-)
“做”(3.8.3。做或不做)的文档说:
这种构造有一个很好的理由:在 Opa 中,每个函数定义(更一般地,每个不在顶层的值)都以一个值结束,这是函数的结果——相反,一旦我们达到第一个值,我们有函数的结果,所以函数是完整的。
这是我在上面加粗的部分,我想知道:为什么在达到第一个值之后函数就完成了?是否引入了“do”以避免您在 OCaml 中看到的类似情况?:
let _ = (some expression)
在 Opa 的语言设计中使用“do”的替代方法是什么?否则怎么可能(从语言设计的角度来看)。