在let表单中定义递归函数

时间:2013-06-24 16:08:36

标签: clojure

在Clojure中可以在let表单中定义递归函数,还是应该使用letfn?例如,我可以使用let吗?

执行以下操作
(defn blowStackExample []
  (letfn [(blowStack []
            (blowStack))]
    (blowStackExample))) 

1 个答案:

答案 0 :(得分:5)

您可以通过在fn表单中命名匿名函数来实现:

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

(blow-stack-example)