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

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

0
core.async

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

`
(go-loop []
(when true

(recur))

1)
`

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

`
(loop []
(when true

(recur))

1)
`

有趣的是,一些非尾部递归循环在编译时会失败。例如,以下代码编译失败:“错误:未实现方法::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 报告)
...