4 [clojure.contrib test-is]))
6 ;; 1.3.1: Procedures as arguments
7 (defn sum-integers [a b]
10 (+ a (sum-integers (+ a 1) b))))
15 (+ (cube a) (sum-cubes (+ a 1) b))))
20 (+ (/ 1.0 (* a (+ a 2))) (pi-sum (+ a 1) b))))
22 (defn sum [term a next b]
26 (sum term (next a) next b))))
28 (def sum-cubes-new (fn[a b] (sum cube a inc b)))
30 (deftest test-sum-of-first-10-integers
31 (is (sum #(identity %) 1 inc 10) 55))
33 ;; (* (sum #(/ 1.0 (* % (+ % 2))) 1 #(+ % 4) 1000) 8)
34 ;;=> 3.139592655589783 (approaches PI)
36 (defn integral [f a b dx]
37 (* (sum f (+ a (/ dx 2)) #(+ % dx) b)
40 (integral cube 0 1 0.001)
42 (integral cube 0 1 0.005)
43 ;;=>0.24999687500000028