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

欢迎!有关如何操作的更多信息,请参阅关于页面。

0
文档

将元数据应用于lazy-seq会导致实现

(def x (vary-meta (lazy-seq (prn :realized)) assoc :foo :bar)) :realized

这可能会令人惊讶,因此修改lazy-seq的docstring并提及它。

补丁

7回答

0

评论由:alexmiller发表

我认为在这里调用seq()是可能的,这样旧的LazySeq实例和新的实例可以共享序列。否则,元数据和后元数据版本将在相同的输入上执行相同的函数调用,但会断开连接,这看起来很糟糕。

0

评论由:alexmiller发表

我不太确定在哪里可以记录此事。也许在https://clojure.org/metadata页面上?

0

评论由:mpenet发表

是的,这在lazy-seq的docstring上也说得通。

0

评论由:alexmiller发表

我在元数据页面上添加了一句话,并将描述更新得更加适用于这里的文档字符串变更。

0

评论者:michaelblume

在这个补丁中,with-meta 不实现 seq,但实现仍然只发生一次--这个方法是否可接受?

0

评论者:michaelblume

添加测试

0
参考:[https://clojure.atlassian.net/browse/CLJ-1800](https://clojure.atlassian.net/browse/CLJ-1800)(由 mpenet 报告)
...