【发布时间】:2013-08-25 02:22:06
【问题描述】:
是否可以在 clojure 中定义两个递归调用的函数?比如这对:
(defn a [x]
(if (= 0 x) 0 (b (dec x))))
(defn b [x]
(if (= 0 x) 0 (a (dec x))))
编译失败:
Unable to resolve symbol: b in this context
因为当我尝试在a 中调用它时,我还没有定义b。
例如,在 ruby 中,这可以正常工作:
def a(x)
x == 0 ? x : b(x-1)
end
def b(x)
x == 0 ? x : a(x-1)
end
【问题讨论】:
标签: clojure