2024年Clojure状态调查!中分享你的想法。

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

0
语法和读取器

https://clojure.org/reader上的读取器页面指出,符号(和关键字)不能以数字开头,LispReader(和EdnReader)中使用的正则表达式也有此意图。CLJ-1252通过修复损坏的读取器正则表达式以匹配规范来解决此问题。但是,这破坏了一些现有代码,因此我们回滚了更改。这里仍然存在不一致,此问题报告旨在决定如何解决这个问题。

我假设我们实际上是在决定关键字(如:5)是可以读取的。如果是这样,我们应该修改正则表达式以更精确地捕获该意图 - 目前它通过回溯意外地允许这些操作。次要问题是Clojure和EDN读取器规范是否也应明确允许这些操作。我的首选方案是使读取器和规范匹配,因此我会倡导放宽读取器规范。

相关问题报告:CLJ-1527

6 答案

0

评论人:bronsa

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

0

评论人:favila

有关此问题(以及符号/关键字解析)和相关讨论的更多信息,请参阅CLJS-677。

0
by

评论人:jafingerhut

Francis,你能确认一下工单号吗?你提到的(CLJS-667)似乎没有这个问题的讨论。

0
by

评论人:favila

非常抱歉,应该是 CLJS-677。(原帖也已更正。)

0
by

评论人:bronsa

在 #clojure 的讨论中,我们发现虽然 :foo/1 当前不允许,但 ::1 是允许的。

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