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

欢迎!请查看关于页面以获取更多关于此信息的工作方式。

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

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

2 答案

0
_评论由:jafingerhut_作出_

我认为Clojure从未记录它会支持类似于:3/a这样的关键字

我认为这不是错误的原因可能是出于避免破坏某些依赖于这个未记录/未承诺的行为的Clojure程序的有意之举。请参阅ticket CLJ-1252的评论。有关符号和字面量的官方支持字符,请参阅本页的“符号和字面量”部分:https://clojure.org/reference/reader

免责声明:我不是这些决定者。我只是评论来提供一些背景。

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