<?xml version="1.0" encoding="windows-1252"?>
<node id="892238" title="Re: adding array elements" created="2011-03-09 12:03:01" updated="2011-03-09 12:03:01">
<type id="11">
note</type>
<author id="58196">
Fletch</author>
<data>
<field name="doctext">
&lt;c&gt;
;; Presented with just about as much Perl as the OP . . .
(ns sumcols
  (:use [clojure.contrib.str-utils :only (re-split)])
  (:use [clojure.contrib.duck-streams :only (read-lines)]))

(defn sumline [acc line]
  (loop [a acc l (map #(Float. %) (re-split #"\s+" line)) idx 0]
    (if (empty? l) a
      (recur (assoc a idx (+ (get a idx 0) (first l))) (rest l) (inc idx)))))

(defn sumcols [filename]
  (loop [acc {} lines (filter #(&gt; (count %) 0) (read-lines filename))]
    (if (empty? lines) (vals acc)
      (recur (sumline acc (first lines)) (rest lines)))))

(println (sumcols (first *command-line-args*)))
&lt;/c&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-58196"&gt;
&lt;p&gt;
The cake is a lie.&lt;br /&gt;
The cake is a lie.&lt;br /&gt;
The cake is a lie.&lt;br /&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
892197</field>
<field name="parent_node">
892197</field>
</data>
</node>
