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

欢迎!请参阅关于页面以了解如何使用本站的一些信息。

+7
打印

目前不能在 edn 中发送变量。'#' 是 Clojure 读取器特有的。目标是在读取侧绑定与同名变量相同的变量标识符(类似于变量序列化支持)。

建议:这不太适用于添加到 edn 中,因此请使用 #clojure/var 作为标签。打印可能打印 #clojure/var 而不是 '#'(可能通过一个标志实现)——需要更多评估。#clojure/var 标签的读取器应在数据读取器中安装。

补丁: vartag2.patch

4 个答案

0

由 cgrand 发布的评论

未命名变量(例如通过 {{with-local-vars}} 创建的)应打印到 1. 或引发异常?(异常是 print-dup 行为)

0

由 kunstmusik 发布的评论

我认为在 vartag2.patch 中,print-var-tagged 测试未包含一个断言。我认为它应该像下面这样

(is (and ...))

在最后一个 let-binding 内部。

0

由 gshayban 发布的评论

打印未命名变量没有什么实际用途(不知道它们的代码上下文,无法区分它们之间的差异),看起来有1. }或1. }就足够了。

0
by
参考: https://clojure.atlassian.net/browse/CLJ-2165 (由alexmiller报告)
...