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 提出)
...