Blob


1 (define (A x y)
2 (cond ((= y 0) 0)
3 ((= x 0) (* 2 y))
4 ((= y 1) 2)
5 (else (A (- x 1)
6 (A x (- y 1))))))
7 (A 1 10)
8 (A 0 (A 1 9))
9 (A 0 (A 0 (A 1 8)))
10 (A 0 (A 0 (A 0 (A 1 7))))
11 (A 0 (A 0 (A 0 (A 0 (A 1 6)))))
12 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 5))))))
13 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 4)))))))
14 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 3))))))))
15 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 2)))))))))
16 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 1))))))))))
17 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 2)))))))))
18 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 4))))))))
19 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 8)))))))
20 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 16))))))
21 (A 0 (A 0 (A 0 (A 0 (A 0 32)))))
22 (A 0 (A 0 (A 0 (A 0 64))))
23 (A 0 (A 0 (A 0 128)))
24 (A 0 (A 0 256))
25 (A 0 512)
26 1024
27 ;; 2^10
29 (A 2 4)
30 (A 1 (A 2 3))
31 (A 1 (A 1 (A 2 2)))
32 (A 1 (A 1 (A 1 (A 2 1))))
33 (A 1 (A 1 (A 1 2)))
34 (A 1 (A 1 (A 0 (A 1 1))))
35 (A 1 (A 1 (A 0 2)))
36 (A 1 (A 1 4))
37 (A 1 (A 0 (A 1 3)))
38 (A 1 (A 0 (A 0 (A 1 2))))
39 ...
40 (A 1 (A 0 (A 0 (A 0 2))))
41 (A 1 (A 0 (A 0 4)))
42 (A 1 (A 0 8))
43 (A 1 16)
44 ;; 65536
45 ;; 2^(2^(2^2)) = 2^16
47 (A 3 3)
48 (A 2 (A 3 2))
49 (A 2 (A 2 (A 3 1)))
50 (A 2 (A 2 2))
51 (A 2 4)
52 65536
53 ;; same as above = 2^16
55 (define (expt b n)
56 (if (= n 0)
57 1
58 (* b (expt b (- n 1)))))
60 (define (f n) (A 0 n))
61 (define (f n) (* 2 n))
63 (define (g n) (A 1 n))
64 (define (g n)
65 (expt 2 n))
67 (define (h n) (A 2 n))
68 (define (h n)
69 (cond ((= n 0) 0)
70 ((= n 1) 2)
71 (else (expt 2 (h (- n 1))))))
73 ;; 2^(2^(2^(...))) 'n' number of times
76 (define (k n) (* 5 n n))