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