【发布时间】:2012-01-08 05:24:53
【问题描述】:
我基本上想要这个:
(defn mymax
([a b] (if (> a b) a b))
([a b & rest] (apply recur (conj rest (mymax a b)))))
这样:(mymax 1 2 3 4) 尾部调用 (mymax 2 3 4) 尾部调用 (mymax 3 4)
我看到“应用”在尾部位置停止重复出现的问题,这意味着它不起作用。但我不明白我怎么不能使用 apply 变量争论函数
[注意,我知道你可以用 reduce 来解决这个特殊的问题。只是想知道您是否可以使用变量参数进行尾调用递归]
【问题讨论】:
标签: clojure