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 应该重新打开吗?
谢谢!