Un question a été publié sur les opérateurs de comparaison chaînés et leur interprétation dans différentes langues.Prise en charge des langages pour les opérateurs de comparaison chaînés (x <y <z)
Les opérateurs de comparaison de chaînage signifient que (x < y < z)
serait interprété comme ((x < y) && (y < z))
au lieu de ((x < y) < z)
.
Les commentaires sur cette question montrent que Python, Perl 6 et Mathematica supportent les opérateurs de comparaison de chaînage, mais quelles autres langues supportent cette fonctionnalité et pourquoi n'est-elle pas plus courante?
Un rapide coup d'oeil à la documentation Python montre que cette fonctionnalité existe depuis au moins 1996. Y a-t-il une raison pour laquelle plus de langues n'ont pas ajouté cette syntaxe?
Un langage typé statiquement aurait des problèmes avec la conversion de type, mais y a-t-il d'autres raisons pour lesquelles ce n'est pas plus commun?
Bonne question. Il me semble que ce serait même rétrocompatible pour Java au moins. (Puisque '<' and '>' ne sont pas définis pour les booléens.) – aioobe
Je pense que ce n'est pas commun parce que les programmeurs sont trop utilisés pour '' <être un opérateur binaire. – CodesInChaos
Pourquoi les langues à typage statique ont-elles des problèmes avec cela? De quelles conversions voulez-vous parler? – sepp2k