2024 Cloujure 状态调查! 中分享你的想法。

欢迎!请查看 关于页面 以获取更多关于如何使用的信息。

+1 投票
语法和读者
关闭

Clojure 团队是否对有人增强读者,这使得 readtable 可用于用户感兴趣?这将允许用户创建 readtable,指定读取宏和调度读取宏,并将 readtable 作为当前一个安装。

附带注释):目前没有计划添加此功能。

3 个答案

+1 投票

已选择
 
最佳答案

读者不支持扩展(但通过标记字面量支持可扩展数据)。这是从 Common Lisp 等语言中有意偏离的 - 请参阅 Clojure 历史论文(搜索“读取宏”) - https://clojure.org/about/history

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

+1 投票

这之前已经有人做了。为什么这不是一个目标的问题在于其根本的设计理念。普遍的看法似乎是,读取宏比它们的价值大得多,而且标记字面量提供了一种受控的方式,用于对读者的干预,而不是全面替换或在大面积上引入,这样更容易影响语言语义。

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

就我个人而言,我非常深入地接触了 CL 读取表的滥用(例如初始化 clojure),我对读取宏的热情不如刚接触它们时那么高了。在 Clojure 中似乎没有这个问题,在 CL 中可能是一个例外,除非你实际上在进行语言研究并想接管读者以更轻松地启动一些东西。从绝对意义上说,这是一种展示 CL 等允许干预读者的“强大”语言的灵活性,但在实践中,我觉得这真的令人失望。

+1 投票

感谢大家的回答。

...