评论由:steveminer@gmail.com
如果这个评论离题了,我感到抱歉。原始示例对我来说有点令人困惑。也许应该是这样的
`
(defmacro nestfn [n & body]
(if (> n 0)
`(fn [] (nestfn ~(dec n) ~@body))
`(do ~@body)))
`
这样 {{(trampoline (nestfn 10 "foo"))}} 就会返回 "foo"。然而,我在 macOS 上对 n=1000 获取了 CompilerException java.lang.StackOverflowError。