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

欢迎!请参阅 关于 页面以获取更多关于如何使用本页面的信息。

0
Clojure
;; 使用数字作为map的关键字的命名空间是可以的,并输出命名空间化的map
user=> {:3/a 1}
#:3{:a 1}

;; 但同名的命名空间化读取宏不会被接受
user=> #:3{:a 1}
RuntimeException 命名空间化map必须指定一个有效的命名空间:3 clojure.lang.Util.runtimeException (Util.java:221)

2 答案

0
_由jafingerhut发表评论_

我相信Clojure从未记录过它会支持像:3/a这样的关键字

我认为它没有引发错误的原因是有意避免破坏一些依赖于未记录/未承诺行为的Clojure程序。  请参阅关于票号CLJ-1252的评论。  有关符号和关键词中官方支持的字符,请参阅本页的符号和文字部分: https://clojure.org/reference/reader

免责声明:我不是这些事务的决策者。  我只是评论以提供一些背景。

如果我决定在Clojure阅读器中支持"#:3{:a 1}",我会感到有些惊讶。
0
参考:https://clojure.atlassian.net/browse/CLJ-2315 (由alex+import报告)
...