OCaml中的`or`和`&`是什么意思?

11

在OCaml中,中缀运算符or&被定义为||&&的同义词。我喜欢第一组运算符,因为它们输入起来有点容易,而且让我觉得我正在学习与传统语言不同的东西。

不幸的是,手册中将or&都标记为已弃用。我想知道:

  1. 这是从什么时候开始的,
  2. 为什么会这样。

如果OCaml设计者已经为此设计决策写了理由,我想知道它位于何处。谢谢您的帮助。

顺便说一下,这是我的想法:

Argument 1. ||&&对C及其后代程序员更加友好。

Counter-argument 1. OCaml在很少的方面类似于C。只在这个特定方面使其看起来像C,这毫无意义。

Argument 2. 最好为连词和析词使用类似的符号。

Counter-argument 2. 在自然语言中,我们只有一个特殊符号 & 用于连词而没有用于析词的。几个世纪以来,我们对此感到满意。此外,一些逻辑教材,包括 Shoenfield 的《数理逻辑》 ,使用完全不同的符号表示析取和合取,即 & 和∨。


4
看了一下附带发布的更改文件,我发现 &&|| 运算符是在 Caml Special Light 1.13 中添加的,该版本于1996年1月4日发布,大约18年前。很遗憾,我不知道你提出的问题的答案 :-) - Jeffrey Scofield
1
@JeffreyScofield 謝謝。當時加入新方法後,"&"和"or"就被廢棄了嗎? - Pteromys
1
不幸的是,在我简短的搜索中没有找到更多信息。这里有一些老的OCaml高手,也许他们会记得细节。这已经是很长时间了。 - Jeffrey Scofield
1个回答

8

这在2001年被标记为已弃用。

我不知道任何设计理念,可能是C语言相似性最主要的驱动因素。此外,or&jocaml中的关键字,这可能是鼓励不在常规OCaml中使用它们的原因之一。


1
有趣的是,& 首先被弃用了;or 在2002年被弃用。 - Pteromys
1
很遗憾听到在OCaml的某个方言中,使用&or有不同的含义。我应该真的远离这些已弃用的运算符吗?它们可能会造成什么混乱呢? - Pteromys
2
它们已被弃用,请远离它们,我无法更加强调。顺便提一下,在4.01中,弃用功能默认会有警告。将它们视为在未来某个版本中将被删除 [10年后? :) ]。 - ygrek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接