層的溶液爲小,功能清晰。
- 返回單個集合的
mean
和呈現集合
- 功能函數即可meaned,如果有幾個人。
功能...
(defn mean [cs] (/ (apply + cs) (count cs)))
...返回一個集合的平均值。
要獲得mean
館藏珍品的集合,定義...
(defn means [css] (vec (map mean css)))
......雖然這也許是太小了,不值得命名。
矩陣(以您的方式)是列向量的向量,所以列意味着只是means
。
行手段
(fn [matrix] (means (transpose matrix)))
其中一個矩陣的轉置是由
(defn transpose [matrix] (apply map vector matrix))
給它沒有多大關係是否定義這些功能在全球範圍(使用defn
)或局部(使用fn
)或只是引用身體。
您可以獨立調整解決方案的各個層次。例如,如果需要,以下是計算平均值的較快但較不明確的方式:
(defn mean [cs]
(loop [remains cs, total 0, n 0]
(if (empty? remains)
(/ total n)
(recur (next remains) (+ total (first remains)) (inc n)))))