欢迎!有关工作原理的更多信息,请参阅关于页面。
关键字(见页面https://clojure.org/reader)的文档明确指出,'.' 不允许作为关键字名称的一部分;然而 '.' 显得非常有用。例如,几个 Clojure 的 Web 框架使用关键字来表示 HTML 元素,使用 CSS 选择器语法(例如,:div.important 等同于
无论如何,'.' 的使用不会被读取器校验,并且通常很有用。
我希望在文档中官方允许('.')。此外,我想要看到允许哪些标点符号的更详细信息(我的 Web 框架在关键字中使用 '&'、'?' 和 '>' 用于各种目的... 读者的当前实现并不禁止这些,但如果未来的读取器将拒绝它们,我想现在就了解情况)。
评论者:hlewisship
为了澄清,Hiccup 和 Cascade 都使用了包含 '#' 和 '.' 的关键字。Cascade 更进一步,使用('&'、'>'以及(可能在未来?')来表示 HTML 实体。
评论者:devn
我认为 EDN 规范缓解了部分担忧,但截至目前 clojure.org 的官方阅读器文档还没有反映 EDN 描述中使用的语言。EDN 目前处于什么状态?能否将 github 页面上的描述拉取到 clojure.org 上?
参考- https://github.com/edn-format/edn#keywords- https://clojure.org/reader#The 阅读器--可扩展数据表示法 (edn)
不幸的是,EDN 规范并没有提到 '>'。
评论者:vitoshka
值得注意的是,最常见的前缀字符 '#' 在关键词中是允许的,但其他前缀字符 '`', '@' 和 '~' 则不允许。这些字符都不允许作为符号的组成部分。