由 jafingerhut 发布的评论
我昨天遇到了 CLJ-17 问题。它的讨论线程显示,验证构造的关键字和符号的内容的话题已经出现过。当时,编写了一个补丁,修改了 "symbol" 和 "keyword" 函数,以便像现在这样构造符号/关键字,但随后又使用 clojure.lang.RT/readString 方法对字符串参数进行了双重检查以确保可读性。如果 intern 和 readString 方法返回不相等的符号(或 readString 抛出异常),它会抛出一个异常。
Rich 担心这种运行时开销太高,并询问是否有人知道更快的处理方式。Chas Emerick 建议使用类似于 Common Lisp 的 #|symbol with whitespace| 语法,并针对引号在常见情况下不必要的常见情况进行了检查。Rich 对引号任意符号的想法持开放态度,但它将是一个不同的票据。
我不知道此后是否有人创建一个票据来引入任意符号的引号,但我可能错过了。这个票据可能是那个票据,但是它的描述需要重大的编辑,并且 Clojure 的许多地方都需要代码更改。