Clojure 和 Clojure 读取器都接受 :/
作为关键字,test.check 也生成它。然而从 Slack 上的对话来看,这似乎没有被正式认为有效。例如在这个线程中提到了clojure-dev中的早期讨论,但我无法找到它。
有人建议从 test.check 中移除它(《TCHECK-155》)已经被加上引用权威的字样,并引用了Alex Miller的话,但Alex 也表示这是一个 test.check 的错误。
TCHECK-155中的引用还提到“clojurescript 应该修正其怪异行为”,但我找不到原始对话,所以我不确定这是什么意思或者是否有票据。我确实发现 clojurescript 的行为与 clojure 至少在一点上不同
(name (keyword "/")) ;;clj => "" ;;cljs => "/"
我的问题是,在 EDN 和/或 Clojure 中,:/
是否被认为 a) 有效,b) 无效,或 c) 未定义 / 预留供将来扩展?
如果是 a) 有效,那么是否可以说 (name (keyword "/"))
是一个 clojurescript 错误?
如果是 b) 或 c),那么是否意味着应该重新打开 TCHECK-155?
谢谢!