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