2024 年 Clojure 状态调查中分享您的想法!

欢迎!请查看关于页面,了解更多如何使用本站的信息。

0
语法和读取器

提案是允许读取器接受带有前导斜杠的符号名称。

问题:前导斜杠经常非常有用,例如在像"/"或"/="这样的数学运算符中

目前,只有"/"被允许作为一个特殊情况,并在clojure.core中被用作除法运算符

这可以扩展到允许所有符号名称以前导斜杠开头。

不应与命名空间限定符号产生歧义
1) 在前导斜杠的情况下,一个符号应被解释为一个非限定符号,例如"/="
2) 在除前导位置之外任何位置使用斜杠时,它应被视为命名空间限定的,例如"clojure.core/+ "
3) 在多个非前导斜杠的情况下,第一个斜杠是命名空间分隔符,例如"clojure.core.matrix.operators//="

可选的,也可以允许在名称中的前导斜杠之后有多个斜杠。这将允许像"/src/main/clojure"这样的符号变得有效。

5 个答案

0

评论者:pparkkin

附上允许符号名称中使用前导斜杠的补丁。

该补丁更改了用于匹配符号的正则表达式模式,以接受符号名称中斜杠后的字符。

测试通过,补丁还添加了几个新的特殊符号测试用例。

0

评论者:jafingerhut

Paavo,今天早上Clojure主仓库的一个提交导致您的补丁clj-1324-1.patch不再能够干净地应用。我还没有详细调查,但更新这个补丁让它能够再次干净地应用可能会很简单。

0

评论者:pparkkin

已附上更新的补丁。

0

评论者:jafingerhut

如果您能将补丁命名得更有区分度,或者移除老的版本,那么将会减少混淆。

0
参考:[https://clojure.atlassian.net/browse/CLJ-1324](https://clojure.atlassian.net/browse/CLJ-1324)(由mikera汇报)
...