2024 年 Clojure 状况调查! 分享您的想法。

欢迎!请参阅 关于 页面了解更多关于此功能的信息。

0
core.logic

目前 LVar 对象打印与符号相同;它们应该打印为不可读形式,或者以读者可以将其读回并获取 LVar 的方式打印。

但是,(read-string (pr-str lv)) 与 lv 不相等,因为 .equals 的实现依赖于它们的字符串 :name 对象是相同的?- 如果一个 LVar 是由使用 str 的 lvar 函数创建的,而另一个是使用 String/intern 的 read-string 创建的,则不会相同。

可以说 LVar 在通过字符串发送后无法进行比较似乎是合理的,但这很棘手,不愉快。我们可以转而定义 LVar 使用 = 而不是 identical? 与其名称进行比较,但 David 对该更改的性能影响表示担忧。

1 个答案

0
参考:https://clojure.atlassian.net/browse/LOGIC-43(由 amalloy 报告)
...