请在 2024 状态 Clojure 调查! 分享您的想法。

欢迎!请查阅 关于 页面,以了解此操作的更多信息。

+1
语法和读者
关闭

Clojure 团队是否感兴趣,让某人为增强读者,使读表格(readtable)可用给用户?这将允许用户创建读表格、指定读宏和调度读宏,并将读表格作为当前的一个安装。

关闭此条目时附带说明: 不打算添加这项功能

3 个答案

+1

最佳答案
 
最佳答案

读者不对扩展封闭(但通过标记文字,可以扩展数据)。这是一个有意从 Common Lisp 等语言中分离出来的做法 - 见 Clojure 历史论文(搜索 "Reader Macros") - https://clojure.org/about/history

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

+1

以前已经有人做过。为什么这不是目标的原因在于潜在的设计理念。普遍的看法似乎认为, reader 宏带来的麻烦比它的价值要大,而且 标记字面量 提供了一种受控的方式,可以选择对 reader 进行操作,而不是彻底的替换或引入一个庞大且不明显的变化面以改变语言语义。

鉴于我们拥有 tools.analyzer,tools.reader 和 instaparse,在语言之上实现新的 reader 语法可能被库所改善。

个人来说,我已经对 CL read table 做了一些挑衅性的操作(例如启动 clojure),但我对 reader 宏的兴趣没有我刚了解它们时那么高了。似乎在 Clojure 中这不是一个问题,也许在 CL 中除了实际做语言研究和想要劫持 reader 以简化启动过程的情况外,只是一种新奇的尝试。从绝对意义上讲,这是一个展示 CL 等语言“力量”的灵活性,但就我而言,在实践中它真的很不足。

+1

感谢大家的回答。

...