2024 Clojure 调查中分享您的想法!

欢迎!有关工作原理的更多信息,请参阅关于页面。

+7
语法和读取器
已关闭

关键字(见页面https://clojure.org/reader)的文档明确指出,'.' 不允许作为关键字名称的一部分;然而 '.' 显得非常有用。例如,几个 Clojure 的 Web 框架使用关键字来表示 HTML 元素,使用 CSS 选择器语法(例如,:div.important 等同于

).

无论如何,'.' 的使用不会被读取器校验,并且通常很有用。

我希望在文档中官方允许('.')。此外,我想要看到允许哪些标点符号的更详细信息(我的 Web 框架在关键字中使用 '&'、'?' 和 '>' 用于各种目的... 读者的当前实现并不禁止这些,但如果未来的读取器将拒绝它们,我想现在就了解情况)。

已标记为“已关闭”,说明:更新文档,删除“它们不能在名称部分或名称类中包含'.'”对关键字的描述

5 回答

0

评论者:hlewisship

为了澄清,Hiccup 和 Cascade 都使用了包含 '#' 和 '.' 的关键字。Cascade 更进一步,使用('&'、'>'以及(可能在未来?')来表示 HTML 实体。

0

评论者:devn

我认为 EDN 规范缓解了部分担忧,但截至目前 clojure.org 的官方阅读器文档还没有反映 EDN 描述中使用的语言。EDN 目前处于什么状态?能否将 github 页面上的描述拉取到 clojure.org 上?

参考
- https://github.com/edn-format/edn#keywords
- https://clojure.org/reader#The 阅读器--可扩展数据表示法 (edn)

0

评论者:hlewisship

不幸的是,EDN 规范并没有提到 '>'。

0

评论者:vitoshka

值得注意的是,最常见的前缀字符 '#' 在关键词中是允许的,但其他前缀字符 '`', '@' 和 '~' 则不允许。这些字符都不允许作为符号的组成部分。

0
参考: https://clojure.atlassian.net/browse/CLJ-889 (由 hlewisship 报告)
...