A question został opublikowany na temat operatorów porównywanych łańcuchów i sposobu ich interpretacji w różnych językach.Obsługa języków dla operatorów powiązanego porównania (x <y <z)
Operatory porównywania łańcuchów oznaczają, że (x < y < z)
będzie interpretowany jako ((x < y) && (y < z))
zamiast jako ((x < y) < z)
.
Komentarze na temat tego pytania pokazują, że Python, Perl 6 i Mathematica obsługują operatory porównywania łańcuchów, ale jakie inne języki obsługują tę funkcję i dlaczego nie jest ona bardziej powszechna?
Szybkie spojrzenie na dokumentację Pythona pokazuje, że funkcja ta istnieje od co najmniej 1996 roku. Czy istnieje powód, dla którego więcej języków nie dodało tej składni?
Statycznie napisany język może mieć problemy z konwersją typu, ale czy istnieją inne powody, które nie są bardziej powszechne?
Dobre pytanie. Wydaje mi się, że byłby on kompatybilny wstecz przynajmniej z Javą. (Ponieważ '<' and '>' nie są zdefiniowane dla booleans.) – aioobe
Myślę, że to nie jest powszechne, ponieważ programiści są zbytnio przyzwyczajeni do '<' bycia operatorem binarnym. – CodesInChaos
Dlaczego języki napisane statycznie mają z tym problemy? Jakie konwersje masz na myśli? – sepp2k