我正在学习Clojure,我无法理解一些语言设计决策:为什么像Clojure这样的不可变字符串的语言也需要关键字和符号数据类型?字符串是否只有可选的命名空间和元数据以及所有这些东西?对于不可变字符串,比较也可以是身份基础,不是吗?
或者,由于与Java的互操作是Clojure的必备条件,至少具有Java String类型和KeywordSymbol数据类型.
我发现这个字符串/关键字/符号"三分法"特别奇怪,因为Clojure似乎非常关注"纯度"并且在其他方面保持简单.
types symbols clojure
clojure ×1
symbols ×1
types ×1