Contents    Page-10    Prev    Next    Page+10    Index   

Combining Map and Reduce

A combination of map and reduce can provide a great deal of power in a compact form.

The Euclidean distance between two points in n-space is the square root of the sum of squares of the differences between the points in each dimension.

Using map and reduce, we can define Euclidean distance compactly for any number of dimensions:


(defn edist [pointa pointb]
  (Math/sqrt (reduce +
          (map square
               (map - pointa pointb)))) )

>(edist '(3) '(1))

2.0

>(edist '(3 3) '(1 1))

2.8284271247461903

>(edist '(3 4 5) '(2 4 8))

3.1622776601683795