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

有关链式比较运算符以及如何用不同语言解释它们的问题被发布了。


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


关于该问题的评论表明,Python,Perl 6和Mathematica支持链接比较运算符,但是还有哪些其他语言支持此功能,为什么它不那么普遍?


快速浏览Python文档显示此功能至少从1996年开始就存在。是否有更多的语言没有添加此语法的原因?


静态类型的语言在类型转换方面会遇到问题,但是还有其他原因导致这种情况不常见吗?


有只小跳蛙
浏览 633回答 3
3回答

慕工程0101907

它应该更常见,但是我怀疑不是因为它使解析语言更加复杂。好处:秉承最少惊喜的原则阅读就像数学一样减轻认知负担(见前2分)缺点:语言的语法更复杂特例句法糖至于为什么不呢,我的猜测是:语言作者没有想到在“不错的”清单上认为它不足以证明实施合理性

鸿蒙传说

好处太小,不足以证明使语言复杂化是正确的。您不需要经常使用它,而且只需增加几个字符即可轻松获得相同的效果。

慕标琳琳

Scheme(可能还有其他大多数Lisp家族语言)在其语法内有效地支持多重比较:(< x y z)可以将其视为<具有三个参数的函数的普通函数应用程序。请参见规格中的6.2.5数值运算。Clojure也支持链式比较。
打开App,查看更多内容
随时随地看视频慕课网APP