2024 Clojure 状态调查!中分享您的观点。

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

+7
打印

目前在一个 edn 中无法发送 vars。`#'` 是 Clojure 读取器的特定部分。目标是传输 var 标识并将其绑定到读取侧的相同命名 var(类似于 var 序列化支持)。

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

补丁: vartag2.patch

4 答案

0

评论者:cgrand

应该如何处理未命名的 vars(例如通过 {{with-local-vars}} 创建)的打印?是否抛出异常?(异常是 print-dup 的行为)

0

评论者:kunstmusik

我认为 vartag2.patch 在测试 print-var-tagged 时缺少断言。我认为它应该在最后的 let-binding 中有类似

(is (and ...))

的内容。

0

评论者:gshayban

打印未命名的变量几乎没有实际用途(不知道它们的代码上下文,无法区分它们),似乎可以使用1. }或1. }。

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