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 是否应该重新开放?
谢谢!