Почему в Clojure есть строки, ключевые слова и символы?

Я изучаю Clojure и не могу понять некоторые решения по проектированию языка :Почему язык с неизменяемыми строками, такой как Clojure, также нуждается в типах данных Keywords и Symbols? Разве строки не могут иметь необязательные пространства имен, метаданные и все такое прочее? Для неизменяемых строк сравнение может также быть базой идентичности, не так ли?

Или, поскольку взаимодействие с Java является обязательным для Clojure, по крайней мере, иметь тип Java String и тип данных KeywordSymbol.

Я нахожу эту «трихотомию» строк/ключевых слов/символов особенно странной, поскольку Clojure кажется очень сосредоточенным на «чистоте» и упрощении других аспектов.

18
задан NeuronQ 25 July 2012 в 17:13
поделиться