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 汇报)
...