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

欢迎!请见关于页面以了解更多此平台的工作方式。

+40
Clojure 中 Clojure
已关闭

示例

user=> (set! *print-meta* true)
true
user=> (clojure.walk/postwalk identity ^:foo ())
()
user=> (clojure.walk/postwalk identity (with-meta (list 1 2 3) {:foo true}))
(1 2 3)

参见 JIRA 问题: https://clojure.atlassian.net/browse/CLJ-2568
该 JIRA 问题已经存在一段时间了。创建这个问题是为了让它从社区获得点赞。如果您关心,请点赞!

已关闭,并附带注释: 在 1.12.0-alpha8 中发布

2 答案

+1

如果能看到实际情况将非常有帮助 - 在考虑各种权衡时,不了解具体情况难以为您提供更多有关您冒到这个问题的信息。

by
一个例子是在黄豆(edamame)中,我遍历了一个函数字面量体。由于在列表/序列(cons 不是列表,但它是通过语法引号产生的结果)上删除了行号,我需要实现自己的。

https://github.com/borkdude/edamame/blob/6ec811bee0d9a636e4e1eb87f9cf2aa1dd5d8518/src/edamame/impl/read_fn.cljc#L4-L24
by
我认为所有使用 clojure.walk 的严肃代码处理都遭受了元数据问题。它丢失了 ^:tag、位置等信息。
0
by

Alex Miller
2020年5月31日晚上9:54

需要考虑的是,现有代码是否在遍历时修改了 coll 元数据,这可能会破坏这次更改。

这是一个问题,有没有答案?

by
更新于 JIRA 问题
...