请在2024 Clojure现状调查!中分享你的想法。

欢迎!请参阅关于页面以了解有关如何进行的更多信息。

+1
语法和读者
已关闭 关闭者

是否Clojure团队希望有人增强读者,以便readtable对用户可用?这将允许用户创建readtable、指定读取宏和分配读取宏,并将读取表安装为当前表。

已关闭并注释: 不打算添加此功能

3 个答案

+1

选中
 
最佳答案

读者不能扩展(但可以通过带标签的 literals 进行可扩展的数据)。这是有意与Common Lisp等语言区分的一种做法 - 请参阅Clojure历史论文(搜索“Reader Macros”)- https://clojure.org/about/history

因此,对此更改不感兴趣。

+1

之前已经有人这样做过了。这不是目标的原因是底层的设计理念。普遍的看法似乎是,Reader宏带来的麻烦大于其价值,而且标记字面量提供了一种可控的方式,可以选择干扰Reader,而不是全面替换或引入大量不易发现的有效面积以干扰语言语义。

鉴于我们已有tools.analyzer、tools.reader和instaparse,在语言之上实现新的Reader语法可能通过库得到了改善。

我个人深切地涉入了CL读表滥用(例如启动clojure),我对Reader宏的喜爱不如我最初了解它们时那么强烈。似乎在Clojure中这是一个非问题,也许只是在CL中是一个新特性,除非你实际上在进行语言研究并想要劫持Reader来使得启动项目更加容易。从绝对意义上说,这是展示像CL这样的语言“功能”的一种灵活性,它允许干扰Reader,但是实际上在我看来,它真的很令人失望。

+1

感谢大家的回答。

...