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 应该重新开放吗?