]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ex1_41.clj
solutions to 4.35, 4.36 and 4.37
[sicp.git] / src / sicp / ex1_41.clj
1 (ns sicp.ex1_41
2   (:use [clojure.contrib test-is]
3         [sicp utils]
4         [sicp ch1_3]))
5
6 (defn doub [f]
7   (fn [x] (f (f x))))
8
9 (deftest test-doub-doub-doub-inc-5
10   (is (= (((doub (doub doub)) inc) 5)
11          21)))
12
13 (deftest test-doub-inc-1
14   (is (= ((doub inc) 1)
15          3)))
16
17 (deftest test-doub-doub-inc-1
18   (is (= (((doub (doub doub)) inc) 1)
19          17)))
20
21 (comment
22 (((doub (doub doub)) inc) 5)
23 ;;=> 21
24 user> ((doub inc) 1)
25 ;;=> 3
26 user> (((doub doub) inc) 1)
27 ;;=> 5
28 user> (((doub (doub doub)) inc) 1)
29 ;;=> 17
30 user> (((doub (doub (doub doub))) inc) 1)
31 ;;=> 257
32 user> (((doub (doub (doub (doub doub)))) inc) 1)
33 ;;=> 65537
34 )