solution to 2.36
authorRamakrishnan Muthukrishnan <vu3rdd@gmail.com>
Tue, 3 Aug 2010 14:15:18 +0000 (19:45 +0530)
committerRamakrishnan Muthukrishnan <vu3rdd@gmail.com>
Tue, 3 Aug 2010 14:15:18 +0000 (19:45 +0530)
src/sicp/ex2_36.clj [new file with mode: 0644]

diff --git a/src/sicp/ex2_36.clj b/src/sicp/ex2_36.clj
new file mode 100644 (file)
index 0000000..acd7124
--- /dev/null
@@ -0,0 +1,19 @@
+(ns sicp.ex2_36
+  (:use [clojure.test]
+        [sicp [ch2-2 :only (accumulate)]]))
+
+;; (define (accumulate-n op init seqs)
+;;   (if (null? (car seqs))
+;;       nil
+;;       (cons (accumulate op init <??>)
+;;             (accumulate-n op init <??>))))
+(defn accumulate-n [op init seqs]
+  (if (nil? (first seqs))
+    nil
+    (cons (accumulate op init (map first seqs))
+          (accumulate-n op init (map next seqs)))))
+
+(deftest test-accumulate-n
+  (let [s (list (list 1 2 3) (list 4 5 6) (list 7 8 9) (list 10 11 12))]
+    (is [= (accumulate-n + 0 s)
+           (list 22 26 30)])))
\ No newline at end of file