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

欢迎!请访问 关于 页面以获取有关如何使用此功能的更多信息。

0
core.async

`
(require '[clojure.core.async :as a])

(a/go (let [a nil] (a/alts! (if a )))) // 无法解析符号 a
(a/go (let [a nil] (a/<! (if a ))) // 无法解析符号 a
`

看起来 'go' 宏去除了作为通道使用的以逻辑假值初始化的符号,因为
在这两种情况下都有异常,显示“无法在此上下文中解析符号:a”。

6 个答案

0

评论者:blandw

已确认。
错误在 0.1.278.0-76b25b-alpha 和 0.1.295.0-9ea6ef-alpha 之间引入。

0

评论者:blandw

解决方案

`
(defmacro workaround-async-92
"解决 core.async 错误的技巧
cf. http://dev.clojure.org/jira/browse/ASYNC-92
[]
;; 必须是一个列表
`(do nil))

(let [a (workaround-async-92)]
...)
`

0

评论者:lgs32a

修改 RawCode 实例的两个方法,以便在忽略之前检查:collected-locals 在 locals 中的 contains?。

0

评论者:gshayban

嗨,Leon,感谢您的补丁。您能否填写一份贡献者协议?https://clojure.org/contributing

0

评论者:lgs32a

我已经填写了,昨天。我收到一封自动确认邮件,说Rich Hickey已经签订了它。我还需要做些什么吗?

0
参考: https://clojure.atlassian.net/browse/ASYNC-92 (由alex+import报告)
...