0

这可能是一个非常简单的问题,或者之前可能已经被问过,但在此处和通过谷歌进行简短搜索后,我无法真正找到答案。

因此,冒着错过类似情况的风险,这是我的问题。为什么通常不支持检查间隔的条件语句,而是实现为 blockif或使用&&运算符将​​两个单独的条件绑定在一起?

承认如果​​我必须多写两行代码并不是全世界,但是从数学背景来看,我发现现代编译器无法对这个相对简单的语句施以巫术真的很奇怪。

从技术或理论角度来看,是否有特殊原因?

4

2 回答 2

1

我在这里的两分钱:如果您用a < b < c多种语言编写,则意味着(考虑到比较运算符通常是关联的)((a < b) < c)。但是a < b返回一个布尔值,因此(例如,如果a < b返回true)连续减少是(true < c)除了极端罕见的情况之外的所有情况,这不是您想要做的。

于 2012-07-13T10:22:40.507 回答
1

我想说从技术角度来看没有任何障碍,因为有些语言确实支持这种比较:

  • Python (文档)
  • Clojure ( docs ) - 以及几乎所有其他 lispy 语言
  • Perl 6 (文档)

如果我没记错的话,还有 Mathematica。

可以肯定的是,它使语言的解析变得更加复杂,如果语言设计者不将其视为经常使用的功能,他们可能会也可能不会付出代价。

附言。我个人喜欢它,但发现自己很少在 Python 中使用它。

于 2012-07-13T12:15:33.317 回答