欢迎!请查看关于页面了解更多关于这个功能的信息。
关于关键字的文档(在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
值得注意的是,最常用的前缀字符'#'在关键字中被读取器允许,但其他前缀字符 '`', '@' 和 '~' 则不允许。这些字符都不允许作为符号本身的组成部分。