在Clojure中可以在let
表单中定义递归函数,还是应该使用letfn
?例如,我可以使用let
吗?
(defn blowStackExample []
(letfn [(blowStack []
(blowStack))]
(blowStackExample)))
答案 0 :(得分:5)
您可以通过在fn
表单中命名匿名函数来实现:
(defn blow-stack-example []
(let [blow-stack (fn a [] (a))]
(blow-stack)))
(blow-stack-example)