评论由:jafingerhut
我在昨天偶然发现了一份编号为CLJ-17的工单。其讨论线程显示之前已经出现过验证构造关键字和符号内容的问题。当时编写了一个补丁,修改了“symbol”和“keyword”函数,使得符号/关键字以当前的方式构建,但随后通过clojure.lang.RT/readString方法对字符串参数进行了双重检查,以确保可读性。如果内部和readString方法返回不同的符号(或者readString抛出异常),则会抛出异常。
Rich担心这种运行时开销过高,并询问是否有人知道更快的方法。Chas Emerick建议使用类似于Common Lisp的#|symbol with whitespace|语法,做一些针对引号不必要的一般情况的检查。Rich对引号任意符号的想法表示开放,但那将是另一个工单。
至今尚不清楚是否有人创建工单来引入引号任意符号,但可能遗漏了它。这个工单可能成为那个工单,但其描述需要重大编辑,Clojure的许多地方也需要代码更改。