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

欢迎!请查看关于页面以了解该工作的更多信息。

0
https://clojure.org/reference/metadata
编辑

关于元数据https://clojure.org/reference/metadata的文档中包含一句令人困惑的句子,我认为它在语法上有误。

该句子是:这个结果之一是,将元数据应用于惰性序列将解析序列的头部,以便两个对象可以共享相同的序列。

有人能请用语法正确的解释第三段中的第二个句子是什么意思吗?

所涉及的两个对象(都是)是什么,这两个对象之间共享哪个序列?

由于句子有歧义,我不完全清楚它的意思。但这里是我想纠正这个句子的尝试。请随时纠正我的不正确的修正。

话虽如此,元数据和它与对象A的关系是不可变的——具有不同元数据的对象B是不同的对象。结果是,将元数据应用于A(如果A是惰性序列)将解析序列的头部,以便对象A和B可以共享相同的元数据。

更多讨论可以在这里找到 https://clojurians.slack.com/archives/C03S1KBA2/p1625827141061700

1 答案

0
 by

对于“序列”一词的用法存在混淆。一个小实验表明,它的意思可能是“...使两个对象可以共享同一尾部”。

clj꞉user꞉> 
(def A (map inc (range)))
#'user/A
clj꞉user꞉> 
(def B (with-meta A {:foo "baz"}))
#'user/B
clj꞉user꞉> 
(identical? A B)
false
clj꞉user꞉> 
(identical? (rest A) (rest B))
true
我们该如何修复文档中的这个问题呢?
Clojure网站的问题/提案应该提交到https://github.com/clojure/clojure-site/issues
...