4
Clojure的尾部调用递归基本上,我想这一点:带有可变参数功能
(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)
我看到“应用”的问题停止复发中是尾部的位置,这意味着它不会工作。但我不明白我不能如何申请变量论证函数
[注意,我知道你可以通过减少来解决这个特定的问题。只是想知道你是否可以用变量参数做尾部回调递归]
相关:http://stackoverflow.com/questions/3670010/apply-recur-macro-in-clojure – Jonas 2012-01-08 06:28:40