【发布时间】:2012-04-07 03:11:22
【问题描述】:
编辑:
数据确实是这样的。
1,000-00-000,GRABBUS,OCTOPUS,,M,26-Nev-12,,05 FRENCH TOAST ROAD,,VACANT,ZA,1867,(001) 111-1011,(002) 111-1000,,
我必须让它看起来很傻,因为它包含专有信息。
这是使用 clojure-csv 创建向量向量之前的样子。
我使用了解析后的数字来简化它,但它们并没有被简化为一个值。我想从 clojure-csv 解析数据中挑选某些列并创建一个较小的 csv 行。
如有任何困惑,请接受我的歉意。
结束编辑:
您如何确定何时使用 reduce 或使用 pmap?
不久前,我在博客上收到了关于 reduce 的评论。具体来说,评论说 reduce 一般不能并行化,但 map (pmap) 可以。
何时使用或不使用 reduce 会有所不同,例如 下面,有什么不同吗?
谢谢。
(def csv-row [1 2 3 4 5 6 7 8 9])
(def col-nums [0 1 4])
(defn reduce-csv-rowX
"Accepts a csv-row and a list of columns to extract, and
reduces the csv-row to the selected list using a list comprehension."
[csv-row col-nums]
(for [col-num col-nums
:let [part-row (nth csv-row col-num nil)]]
part-row))
(defn reduce-csv-row
"Accepts a csv-row and a list of columns to extract, and
reduces the csv-row to the selected list."
[csv-row col-nums]
(reduce
(fn [out-csv-row col-num]
(let [out-val (nth csv-row col-num nil)]
(if-not (nil? out-val)
(conj out-csv-row out-val))))
[]
col-nums))
编辑:
(defn reduce-csv-row “接受 csv 行和要提取的列列表,以及 将 csv 行减少到选定列表。” [csv-row col-nums] (减少 (fn [out-csv-row col-num] (让 [out-val (nth csv-row col-num nil)] (conj out-csv-row out-val))) [] 列号))
【问题讨论】: