有关链式比较运算符以及如何用不同语言解释它们的问题被发布了。链接比较运算符意味着(x < y < z)将其解释为((x < y) && (y < z))而不是((x < y) < z)。关于该问题的评论表明,Python,Perl 6和Mathematica支持链接比较运算符,但是还有哪些其他语言支持此功能,为什么它不那么普遍?快速浏览Python文档显示此功能至少从1996年开始就存在。是否有更多的语言没有添加此语法的原因?静态类型的语言在类型转换方面会遇到问题,但是还有其他原因导致这种情况不常见吗?
3 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
它应该更常见,但是我怀疑不是因为它使解析语言更加复杂。
好处:
秉承最少惊喜的原则
阅读就像数学一样
减轻认知负担(见前2分)
缺点:
语言的语法更复杂
特例句法糖
至于为什么不呢,我的猜测是:
语言作者没有想到
在“不错的”清单上
认为它不足以证明实施合理性
慕标琳琳
TA贡献1830条经验 获得超9个赞
Scheme(可能还有其他大多数Lisp家族语言)在其语法内有效地支持多重比较:
(< x y z)
可以将其视为<具有三个参数的函数的普通函数应用程序。请参见规格中的6.2.5数值运算。
Clojure也支持链式比较。
- 3 回答
- 0 关注
- 614 浏览
添加回答
举报
0/150
提交
取消