Un question fue publicada acerca operadores de comparación encadenados y la forma en que se interpretan en diferentes idiomas.soporte de idioma para los operadores de comparación encadenados (x <y <z)
Encadenar operadores de comparación significa que (x < y < z)
se interpretaría como ((x < y) && (y < z))
en lugar de ((x < y) < z)
.
Los comentarios sobre esta pregunta muestran que Python, Perl 6, y Mathematica apoyo de encadenamiento de los operadores de comparación, pero ¿qué otros idiomas compatibles con esta función y por qué no es lo más común?
Un rápido vistazo a la documentación de Python muestra que esta característica ha sido por lo menos desde 1996. ¿Hay una razón más idiomas no han añadido esta sintaxis?
Un lenguaje de tipos estáticos tendría problemas con la conversión de tipos, pero ¿Hay otras razones esto no es más común?
Buena pregunta. Me parece que incluso sería compatible con versiones anteriores de Java al menos. (Dado que '<' and '>' no están definidos para booleanos.) – aioobe
Creo que no es común porque los programadores están demasiado acostumbrados a '<' ser un operador binario. – CodesInChaos
¿Por qué los lenguajes tipados estáticamente tienen problemas con esto? ¿A qué tipo de conversiones te refieres? – sepp2k