欢迎!请参阅关于页面以获取有关此如何工作的更多信息。
https://clojure.org/reader中的reader页面指出,符号(和关键字)不能以数字开头,LispReader(和EdnReader)在正则表达式中也具有这个意图。CLJ-1252通过修复损坏的reader正则表达式来解决此问题,以匹配规范。然而,这也破坏了某些现有的代码,因此我们撤销了更改。这里仍然存在不匹配,这个工单旨在决定我们该怎么办。
我假设我们实际上是决定,像:5这样的关键字是可以读的。如果是这样,我们应该更改正则表达式以更准确地捕获这个意图 - 目前它因为这些纯偶然性的回溯而允许这些问题。次要问题是Clojure和EDN reader规范是否也应该明确允许这些为有效。我的首选方案是使reader和规范相匹配,因此我会推动放宽reader规范。
相关工单:CLJ-1527
由bronsa发表的评论
关于像:1/1或:1/a这样的关键字该如何?Clojure目前接受后者但不接受前者。
由favila发表的评论
关于此问题(以及符号/关键字解析)的更多讨论(特别是cljs.reader)可以在CLJS-677中找到。
评论者:jafingerhut
Francis,你能再检查一下ticket编号吗?你提到的(CLJS-667)似乎没有对这个问题的任何讨论。
真诚道歉,是CLJS-677。(原始帖子也已经更正。)
在一次关于 #clojure 的讨论中,发现虽然 :foo/1 目前不允许,但 ::1 是允许的。