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