这之前已经有人做了。为什么这不是一个目标的问题在于其根本的设计理念。普遍的看法似乎是,读取宏比它们的价值大得多,而且标记字面量提供了一种受控的方式,用于对读者的干预,而不是全面替换或在大面积上引入,这样更容易影响语言语义。
鉴于我们已经有 tools.analyzer、tools.reader 和 instaparse,在语言之上实施新的读取器语法可能通过库得到改善。
就我个人而言,我非常深入地接触了 CL 读取表的滥用(例如初始化 clojure),我对读取宏的热情不如刚接触它们时那么高了。在 Clojure 中似乎没有这个问题,在 CL 中可能是一个例外,除非你实际上在进行语言研究并想接管读者以更轻松地启动一些东西。从绝对意义上说,这是一种展示 CL 等允许干预读者的“强大”语言的灵活性,但在实践中,我觉得这真的令人失望。