以前已经有人做过。为什么这不是目标的原因在于潜在的设计理念。普遍的看法似乎认为, reader 宏带来的麻烦比它的价值要大,而且 标记字面量 提供了一种受控的方式,可以选择对 reader 进行操作,而不是彻底的替换或引入一个庞大且不明显的变化面以改变语言语义。
鉴于我们拥有 tools.analyzer,tools.reader 和 instaparse,在语言之上实现新的 reader 语法可能被库所改善。
个人来说,我已经对 CL read table 做了一些挑衅性的操作(例如启动 clojure),但我对 reader 宏的兴趣没有我刚了解它们时那么高了。似乎在 Clojure 中这不是一个问题,也许在 CL 中除了实际做语言研究和想要劫持 reader 以简化启动过程的情况外,只是一种新奇的尝试。从绝对意义上讲,这是一个展示 CL 等语言“力量”的灵活性,但就我而言,在实践中它真的很不足。