在let表单中定义递归函数

Mar*_*tus 1 clojure

在Clojure中是否可以在let表单中定义递归函数或者应该letfn使用它?例如,我可以使用以下方法let吗?

(defn blowStackExample []
  (letfn [(blowStack []
            (blowStack))]
    (blowStackExample))) 
Run Code Online (Sandbox Code Playgroud)

jua*_*rro 5

你可以这样做的方法是命名fn表单中的匿名函数:

(defn blow-stack-example []
  (let [blow-stack (fn a [] (a))]
    (blow-stack)))

(blow-stack-example)
Run Code Online (Sandbox Code Playgroud)