Blame


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