programming-languages - 链式比较运算符的语言支持 (x < y < z)

标签 programming-languages syntax operators

question发布了关于链式比较运算符以及它们在不同语言中的解释方式。

链接比较运算符意味着 (x < y < z)将被解释为 ((x < y) && (y < z))而不是 ((x < y) < z) .

对该问题的评论表明,Python、Perl 6 和 Mathematica 支持链接比较运算符,但其他哪些语言支持此功能,为什么不更常见?

快速浏览一下 Python 文档就会发现这个特性至少从 1996 年就已经存在了。是否有更多的语言没有添加这个语法的原因?

静态类型语言在类型转换方面会出现问题,但是否还有其他不常见的原因?

最佳答案

它应该更常见,但我怀疑这不是因为它使解析语言更加复杂。

好处:

  • 秉持最小惊喜原则
  • 读起来像教数学
  • 减少认知负荷(见前 2 点)

  • 缺点:
  • 该语言的语法更复杂
  • 特例语法糖

  • 至于为什么不可以,我的猜测是:
  • 语言作者没想到
  • 位于“值得拥有”列表中
  • 认为它不足以证明实现
  • 的合理性。

    关于programming-languages - 链式比较运算符的语言支持 (x < y < z),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4090845/

    相关文章:

    bash - 在 bash 中使用 "exit ${?}"是否正确?

    c++ - 类不支持运算符

    syntax - 用于各种语言代码语法高亮显示的 LaTeX 包

    c++ - "x = new(Foo)"与任意 Foo 的 "x = new Foo"相同吗?

    c++ - 数组中所有元素之间的逻辑运算

    c++ - 四向等价

    c - 未初始化的变量如何获得垃圾值?

    compiler-construction - 闭包转换和高阶函数调用的单独编译

    language-agnostic - 类型安全与静态类型?

    C语言 : recursive #include