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'宏移除了被用作通道的逻辑上初始化为false的符号,因为
在这两种情况下都有异常,它指出“Unable to resolve symbol: a in this context”,即在这种情况下无法解析符号:a。

6 答案

0

评论人:blandw

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

0

评论人:blandw

使用方法

`
(defmacro workaround-async-92
"Hack to workaround core.async bug
cf. http://dev.clojure.org/jira/browse/ASYNC-92"
[]
;;必须要是一个列表
`(do nil))

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

0

评论人:lgs32a

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

0
by

评论由:gshayban 发布

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

0
by

评论人:lgs32a

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

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