File tree Expand file tree Collapse file tree 4 files changed +18
-13
lines changed Expand file tree Collapse file tree 4 files changed +18
-13
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ be able to readback ackermann function
22be able to check equivalence of ackermann function
33
44[ maybe] remove lazy evaluation
5+
56[ problem] understand current evaluation strategy
67
78- we can use ` Y ` ! -- ` DelayedApply ` can replace ` Lazy `
Original file line number Diff line number Diff line change 11(import zero add1 sub1 zero? " nat-church.lisp" )
22(import one two " nat-church.lisp" )
3-
43(import if " bool.lisp" )
54
65(define (ackermann m n)
109 (ackermann (sub1 m) one)
1110 (ackermann (sub1 m) (ackermann m n)))))
1211
13- (assert-equal ackermann ackermann)
14-
15- (ackermann zero zero)
16- (ackermann one zero)
17- (ackermann zero one)
18- (ackermann one zero)
19- ; ; (ackermann one two)
20- ; ; (ackermann two one)
21-
2212(define ackermann-wrap
2313 (lambda (ackermann)
2414 (lambda (m n)
2818 (ackermann (sub1 m) one)
2919 (ackermann (sub1 m) (ackermann m n)))))))
3020
31- ackermann-wrap
21+ (assert-equal ackermann ackermann)
22+ (assert-equal ackermann (ackermann-wrap ackermann))
23+ (assert-equal ackermann (ackermann-wrap (ackermann-wrap ackermann)))
3224
3325(define (ackermann-1 m n)
3426 ((ackermann-wrap ackermann-1 )
@@ -45,8 +37,8 @@ ackermann-wrap
4537 (ackermann-wrap ackermann-3 )))
4638 m n))
4739
48- ; ; (assert-equal ackermann ackermann-1)
49- ; ; (assert-equal ackermann ackermann-2)
40+ ; ; TODO fail:
41+
5042; ; (assert-equal ackermann-1 ackermann-2)
5143; ; (assert-equal ackermann-1 ackermann-3)
5244; ; (assert-equal ackermann-2 ackermann-3)
Original file line number Diff line number Diff line change 1+ (import zero one two three " nat-church.lisp" )
2+ (import ackermann " ackermann.lisp" )
3+
4+ (assert-equal (ackermann zero zero) one)
5+ (assert-equal (ackermann one zero) two)
6+ (assert-equal (ackermann zero one) two)
7+
8+ ; ; TODO fail:
9+
10+ ; ; (ackermann one one)
11+ ; ; (ackermann one two)
12+ ; ; (ackermann two one)
You can’t perform that action at this time.
0 commit comments