2024 Clojure 状态调查中分享您的想法!

欢迎!有关本站如何运作的更多信息,请参阅关于页面。

0
语法和读取器

Clojure.org的读取器页面声表示号(以及关键词)不能以数字开头,LispReader(以及EdnReader)中的正则表达式也有此意图。CLJ-1252通过修复损坏的读取器正则表达式以匹配规范来解决这个问题。然而,这破坏了一些现有的代码,所以我们回滚了更改。这里仍然存在脱节,此票据旨在决定我们取代的做法。

我假定我们实际上决定关键词(如:5)是可以读取的。如果是这样,我们应该修改正则表达式以更准确地捕获那个意图 - 目前它纯粹是由于回溯而意外允许这些。次要问题是Clojure和EDN读取器规范是否也应明确允许这些为有效。我的偏好是让读取器和规范匹配,所以我会主张放宽读取器规范。

相关问题:CLJ-1527

6 答案

0

评论者:bronsa

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

0

评论者:favila

关于此问题(以及符号/关键字解析)的更多讨论(在CLJS-677的cljs.reader语境中)。

0

评论者:jafingerhut

弗朗西斯,你能核实一下工单号码吗?你提到的(CLJS-667)似乎没有这个问题的讨论。

0

评论者:favila

真诚道歉,它是 CLJS-677。(原文也进行了更正。)

0

评论者:bronsa

从#clojure中的讨论中可以得知,虽然目前不允许使用:foo/1,但允许使用::1。

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