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}} 创建的)打印为 1 还是抛出异常?(异常是 print-dup 的行为)

0

评论者:kunstmusik

我认为 vartag2.patch 存在一个问题,即 print-var-tagged 的测试中缺少断言。我认为它应该在最后的 let-binding 中的某个地方有 something like

(is (and ...))

0

评论者:gshayban

打印未命名的变量几乎没有什么用(不知道代码上下文,就无法区分它们),看起来使用1. }或1. }就可以了。

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