请在 2024 Clojure状态调查! 中分享您的想法。

欢迎!有关如何工作的更多信息,请参阅 关于 页面。

0
core.async

以下代码使用 core.async 0.3.442 编译无错误

`
(go-loop []
(when true

(recur))

1)
`

不带 core.async 的相同循环结构会导致编译器错误 ("ERROR: 在...处不能递归")

`
(loop []
(when true

(recur))

1)
`

有趣的是,一些非尾递归循环会正确失败编译。例如以下会失败,报 "ERROR: 没有方法::emit-instruction..."

`
(go-loop []
(do

(recur)
1))

`

2 个回答

0

评论者:djwhitt

创建了一个演示此问题的仓库: https://github.com/djwhitt/async-190

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