【发布时间】:2018-04-01 02:20:20
【问题描述】:
我是函数式编程和 Clojure 编程语言的初学者,我几乎所有事情都求助于 recur。我在 csv 中有一个数据集,作为地图导入。我已经提取了我需要用作向量的信息。每列都是一个向量[1 5 10 8 3 2 1 ...],我想计算每列的平均值。我写了以下函数:
(defn mean
"Calculate the mean for each column"
([columns]
(mean columns []))
([columns
means]
(if (empty? columns)
means
(recur (rest columns)
(conj means (float (/ (reduce + (first columns)) (count (first columns)))))))))
;; Calcule the mean for the following vectors
(mean [[1 2 3] [1 2 3] [1 2 3]])
; => [2.0 2.0 2.0]
这是解决这个问题的一种实用方法吗?
【问题讨论】:
标签: clojure functional-programming