Я участвую в процессе обучения Clojure, и я не могу понять некоторые решения по разработке языка: почему языку с неизменяемыми строками типа Clojure также нужны типы данных и символы символов? Не могли ли строки иметь необязательные пространства имен и метаданные и все это? Сравнение неизменяемых строк также может быть базой идентификации, no?
Или, поскольку взаимодействие с Java должно иметь для Clojure, по крайней мере, иметь тип строки Java и тип данных KeywordSymbol.
Я считаю, что это трихотомия String/Keyword/Symbol, особенно странная, поскольку Clojure кажется очень сосредоточенной на "чистоте" и сохраняя вещи простыми в других аспектах.