|
13 | 13 | (ackermann (sub1 m) one) |
14 | 14 | (ackermann (sub1 m) (ackermann m (sub1 n)))))))) |
15 | 15 |
|
| 16 | + |
16 | 17 | (assert-equal ((Y ackermann-wrap) zero zero) one) |
17 | 18 | (assert-equal ((Y ackermann-wrap) one zero) two) |
18 | 19 | (assert-equal ((Y ackermann-wrap) zero one) two) |
| 20 | +(assert-equal ((Y ackermann-wrap) two zero) three) |
19 | 21 | (assert-equal ((Y ackermann-wrap) one one) three) |
20 | | -(assert-equal ((Y ackermann-wrap) one two) four) |
| 22 | +(assert-equal ((Y ackermann-wrap) zero two) three) |
| 23 | +(assert-equal ((Y ackermann-wrap) three zero) five) |
21 | 24 | (assert-equal ((Y ackermann-wrap) two one) five) |
| 25 | +(assert-equal ((Y ackermann-wrap) one two) four) |
| 26 | +(assert-equal ((Y ackermann-wrap) zero three) four) |
22 | 27 |
|
23 | 28 | (assert-equal ackermann (ackermann-wrap ackermann)) |
24 | 29 | (assert-equal ackermann (ackermann-wrap (ackermann-wrap ackermann))) |
|
30 | 35 | (assert-equal (ackermann-1 zero zero) one) |
31 | 36 | (assert-equal (ackermann-1 one zero) two) |
32 | 37 | (assert-equal (ackermann-1 zero one) two) |
| 38 | +(assert-equal (ackermann-1 two zero) three) |
33 | 39 | (assert-equal (ackermann-1 one one) three) |
34 | | -(assert-equal (ackermann-1 one two) four) |
| 40 | +(assert-equal (ackermann-1 zero two) three) |
| 41 | +(assert-equal (ackermann-1 three zero) five) |
35 | 42 | (assert-equal (ackermann-1 two one) five) |
| 43 | +(assert-equal (ackermann-1 one two) four) |
| 44 | +(assert-equal (ackermann-1 zero three) four) |
36 | 45 |
|
37 | 46 | (define (ackermann-2 m n) |
38 | 47 | ((ackermann-wrap |
|
42 | 51 | (assert-equal (ackermann-2 zero zero) one) |
43 | 52 | (assert-equal (ackermann-2 one zero) two) |
44 | 53 | (assert-equal (ackermann-2 zero one) two) |
| 54 | +(assert-equal (ackermann-2 two zero) three) |
45 | 55 | (assert-equal (ackermann-2 one one) three) |
46 | | -(assert-equal (ackermann-2 one two) four) |
| 56 | +(assert-equal (ackermann-2 zero two) three) |
| 57 | +(assert-equal (ackermann-2 three zero) five) |
47 | 58 | (assert-equal (ackermann-2 two one) five) |
| 59 | +(assert-equal (ackermann-2 one two) four) |
| 60 | +(assert-equal (ackermann-2 zero three) four) |
48 | 61 |
|
49 | 62 | (define (ackermann-3 m n) |
50 | 63 | ((ackermann-wrap |
|
55 | 68 | (assert-equal (ackermann-3 zero zero) one) |
56 | 69 | (assert-equal (ackermann-3 one zero) two) |
57 | 70 | (assert-equal (ackermann-3 zero one) two) |
| 71 | +(assert-equal (ackermann-3 two zero) three) |
58 | 72 | (assert-equal (ackermann-3 one one) three) |
59 | | -(assert-equal (ackermann-3 one two) four) |
| 73 | +(assert-equal (ackermann-3 zero two) three) |
| 74 | +(assert-equal (ackermann-3 three zero) five) |
60 | 75 | (assert-equal (ackermann-3 two one) five) |
| 76 | +(assert-equal (ackermann-3 one two) four) |
| 77 | +(assert-equal (ackermann-3 zero three) four) |
61 | 78 |
|
62 | 79 | ;; TODO fail: |
63 | 80 |
|
|
0 commit comments