自動的に末尾呼び出しが最適化されるClojureの関数を定義する方法はありますか?
例えば
(defrecur fact [x]
(if (= x 1)
1
(* x (fact (dec x)))))
内部的に次のようなものに変換されます:
(defn fact [x]
(loop [n x f 1]
(if (= n 1)
f
(recur (dec n) (* f n)))))
このようなものがすでに存在するかどうか教えていただけますか?