2024年Clojure调查问卷中分享您的想法!

欢迎!请参阅关于页面以获取有关此如何工作的更多信息。

0
语法和reader

https://clojure.org/reader中的reader页面指出,符号(和关键字)不能以数字开头,LispReader(和EdnReader)在正则表达式中也具有这个意图。CLJ-1252通过修复损坏的reader正则表达式来解决此问题,以匹配规范。然而,这也破坏了某些现有的代码,因此我们撤销了更改。这里仍然存在不匹配,这个工单旨在决定我们该怎么办。

我假设我们实际上是决定,像:5这样的关键字是可以读的。如果是这样,我们应该更改正则表达式以更准确地捕获这个意图 - 目前它因为这些纯偶然性的回溯而允许这些问题。次要问题是Clojure和EDN reader规范是否也应该明确允许这些为有效。我的首选方案是使reader和规范相匹配,因此我会推动放宽reader规范。

相关工单:CLJ-1527

6 个答案

0

由bronsa发表的评论

关于像:1/1或:1/a这样的关键字该如何?Clojure目前接受后者但不接受前者。

0

由favila发表的评论

关于此问题(以及符号/关键字解析)的更多讨论(特别是cljs.reader)可以在CLJS-677中找到。

0
by

评论者:jafingerhut

Francis,你能再检查一下ticket编号吗?你提到的(CLJS-667)似乎没有对这个问题的任何讨论。

0
by

由favila发表的评论

真诚道歉,是CLJS-677。(原始帖子也已经更正。)

0
by

由bronsa发表的评论

在一次关于 #clojure 的讨论中,发现虽然 :foo/1 目前不允许,但 ::1 是允许的。

0
by
参考资料: https://clojure.atlassian.net/browse/CLJ-1286 (由 alexmiller 报告)
...