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

评论者:jafingerhut

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

0

评论者为:favila

真诚道歉,应该是CLJS-677。(原始帖子已纠正。)

0

评论者为:bronsa

在#clojure的一个讨论中,发现尽管:foo/1目前不被允许,而::1却可以。

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