我已經寫了一個函數,它使用遞歸來查找列表中的元素數量,並且它可以成功運行,但是,我並不特別喜歡我的方式寫它。現在我已經寫了一種方法,我似乎無法想到另一種方式。Clojure - 使用遞歸來查找列表中的元素數量
我的代碼如下:
(def length
(fn [n]
(loop [i n total 0]
(cond (= 0 i) total
:t (recur (rest i)(inc total))))))
對我來說好像是過於複雜,任何人都可以想到的另一種方式這可以用於比較寫?
任何幫助非常感謝。
爲什麼不直接使用https://clojuredocs.org/clojure.core/count? – jmargolisvt
我必須使用遞歸工作,這就是爲什麼我已經走下了使用循環的路線,以及爲什麼它最終變得如此複雜。遞歸使用count會有意義嗎? – benjano
使用'loop-recur'你只需要一個循環,而不是遞歸。 –