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