欢迎!有关此如何工作的更多信息,请参阅 关于 页面。
目前,您无法在 edn 中发送 var。'# 是 Clojure 读取器特定的。目标是在读取端传输 var 身份并绑定到同名的 var(类似于 var 序列化支持)。
建议: 这不够通用,不能添加到 edn,因此请使用 #clojure/var 作为标签。打印可能打印 #clojure/var 而不是 '#'(可能通过一个标志)- 需要进一步评估。#clojure/var 标签读取器应安装在数据读取器中。
补丁: vartag2.patch
由:cgrand 评论
无名 var(例如通过 {{with-local-vars}} 创建)应该打印到 1. 或抛出异常?(异常是 print-dup 行为)
由:kunstmusik 评论
我认为 vartag2.patch 中有一个问题,即 print-var-tagged 测试中缺少一个断言。我认为它应该有点像
(is (and ...))
在最后的 let-binding 内。
由:gshayban 评论
打印无名 var 几乎没有用途(如果不知道它们的代码上下文,它们之间没有任何区别),这应该可以接受 1. } 或 1. }