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

欢迎!请查看关于页面获取更多的信息。

0
Clojure
;; 将数字作为map的关键字命名空间是可行的,并且输出了命名空间映射
用户=> {:3/a 1}
#:3{:a 1}

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

2 答案

0
_评论者:jafingerhut_

我不相信Clojure有任何文档记录它会支持像:3/a这样的关键字

我认为它不引起错误的原因是故意避免破坏依赖于这个未文档记录的/未保证行为的一些Clojure程序。请参阅ticket CLJ-1252的评论。关于符号和字面量中官方支持的字符,请参阅本页面的Symbols和 Literals部分:https://clojure.org/reference/reader

免责声明:我并不是这些决策的决策者。我只是在提供一些背景信息。

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