【发布时间】:2012-10-08 13:12:47
【问题描述】:
这里是clojure中frequencies的实现:
(defn frequencies
"Returns a map from distinct items in coll to the number of times
they appear."
[coll]
(persistent!
(reduce (fn [counts x]
(assoc! counts x (inc (get counts x 0))))
(transient {}) coll)))
assoc! 是否被视为突变?
assoc! 在frequencies 中的复杂度是多少?
另外,counts 似乎在每次迭代中被访问两次:它会导致性能损失吗?
【问题讨论】:
标签: clojure functional-programming reduce