以下代码使用 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))
`