有關鏈式比較運算符以及如何用不同語言解釋它們的問題被發布了。鏈接比較運算符意味著(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 關注
- 693 瀏覽
添加回答
舉報
0/150
提交
取消