欢迎!关于如何工作的更多信息,请参阅关于页面。
目前在一个 edn 中无法发送 vars。`#'` 是 Clojure 读取器的特定部分。目标是传输 var 标识并将其绑定到读取侧的相同命名 var(类似于 var 序列化支持)。
建议:这不足以添加到 edn,因此请使用 #clojure/var 作为标签。打印可能会打印 #clojure/var 而不是 `'#`(可能通过一个标志)——需要更多评估。#clojure/var 标签读取器应在数据读取器中安装。
补丁: vartag2.patch
评论者:cgrand
应该如何处理未命名的 vars(例如通过 {{with-local-vars}} 创建)的打印?是否抛出异常?(异常是 print-dup 的行为)
评论者:kunstmusik
我认为 vartag2.patch 在测试 print-var-tagged 时缺少断言。我认为它应该在最后的 let-binding 中有类似
(is (and ...))
的内容。
评论者:gshayban
打印未命名的变量几乎没有实际用途(不知道它们的代码上下文,无法区分它们),似乎可以使用1. }或1. }。