]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ex2_31.clj
Merge branch 'master' of github.com:vu3rdd/sicp
[sicp.git] / src / sicp / ex2_31.clj
1 (ns sicp.ex2_31
2   (:use [clojure.test]))
3
4 (defn tree-map [func tree]
5   (map (fn [sub-tree]
6          (if (seq? sub-tree)
7            (tree-map func sub-tree)
8            (func sub-tree)))
9        tree))
10
11 (defn square-tree [tree]
12   (tree-map #(* % %) tree))
13
14 (deftest test-tree-map-with-sq
15   (are [x y] [= x y]
16        (square-tree '(1 (2 (3 4) 5) (6 7))) '(1 (4 (9 16) 25) (36 49))))