评论者:steveminer@gmail.com
如果这个评论不太相关,请见谅。原始示例对我来说有点 confusing。也许应该是:
`
(defmacro nestfn [n & body]
(if (> n 0)
`(fn [] (nestfn ~(dec n) ~@body))
`(do ~@body)))
`
这样 (trampoline (nestfn 10 "foo")) 就会返回 "foo"。然而,我得到一个 CompilerException: java.lang.StackOverflowError,当 n=1000 时在MacOS上运行。