如何在 Clojure 中创建一个不是尾递归的递归匿名函数?
以下显然不起作用,如 recur
仅用于尾递归函数。我也不愿意拖入 y 组合器..
((fn [n] (if (= 1 n) 1 (* n (recur (dec n))))) 5)
最佳答案
通过在 fn
之间指定函数,可以给函数一个名称来引用它们自身。和 arglist:
user> ((fn ! [n] (if (= 1 n) 1 (* n (! (dec n))))) 5)
120
关于recursion - Clojure 中的非尾递归匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626641/