Я уже давно вдали от Скалы — чуть более трех лет. v2.7.1 была последней версией, которую я использовал значительно, если память служит. Мне нравилось проводить с ним время, но оно мне не подходило.
В любом случае, я узнал, что когда-то в ту эпоху Scala добавила поддержку использования стрелок Unicode в качестве необязательных альтернатив обычным ASCII-приближениям, которые всегда были. Например, это:
for (x <- 1 to 10) { ... }
эквивалентно этому:
for (x ← 1 to 10) { ... }
Второй пример использует Unicode ← вместо ASCII <-; другие стрелки (соответствующие -> и =>) также имеют эквиваленты Unicode в Scala. Существуют различные другие символы Юникода, которые были предложены для выполнения схожих ролей, обычно с положительным обсуждением вокруг них , включая ⩵, ≫, ≪, ⋙, ≥, ≤ и ∷. Эта синтаксическая гибкость определяется не в библиотеке или в частном коде, а в самом языке.
Я в ужасе. Этот блог теперь имеет категорию «WTF».
В заявке, в которой предлагается добавить одну из этих эквивалентностей , указаны различные потенциальные проблемы, которые, вероятно, игнорируются. Возможно, люди жаждут APL ; К сожалению, подходящие клавиатуры не широко доступны.
У меня нет проблем с идентификаторами Unicode: я работаю с языком, который вообще не накладывает никаких ограничений на используемые символы, так что программисты, которые хотят использовать японские, чероки, санскритские или греческие символы в своих идентификаторах, могут иметь это. Возможность участвовать в таких вещах однозначно хороша. Тем не менее, этот язык мудро старается избегать умных действий, таких как совмещение основного оператора анонимной функции с символом λ для каждого 1 .
Были различные дискуссии , споры и скрежет зубов о том, является ли Scala сложным языком программирования . Я не буду вдаваться в это; это аргумент в пользу семантики, который, я не думаю, правильно сформулирован для начала.
Возможно, однако, большинство из нас может согласиться с тем, что, если Scala не сложен , он по крайней мере умный , и подобные вещи являются лишь наиболее легкими примерами такого рода. Мы оставляем за собой наши личные предубеждения относительно того, является ли это похвальным, желательным или хорошим.
В обсуждениях, подобных этому, следует упомянуть Fortess и его двойственность в языковом представлении: один пишет Fortress в ASCII, но язык определяет своего рода разметку в этом наборе символов, чтобы создать довольно элегантную визуализацию кода, подходящего для публикации. Смотрите пример здесь,
С http://cemerick.com/2011/07/14/scala-isnt-complicated-its-clever/