edits
[lambda.git] / assignment_3_evaluator.mdwn
index 28693f4..c4032ee 100644 (file)
@@ -42,24 +42,29 @@ let makeList = make\_list in
 let isZero = iszero in
 let mult = mul in
 ;
-let t1 = (make_list 1 empty) in
-let t2 = (make_list 2 empty) in
-let t3 = (make_list 3 empty) in
-let t12 = (make_list t1 (make_list t2 empty)) in
-let t23 = (make_list t2 (make_list t3 empty)) in
-let ta = (make_list t1 t23) in
-let tb = (make_list t12 t3) in
-let tc = (make_list t1 (make_list t23 empty)) in
+let t1 = (make\_list 1 empty) in
+let t2 = (make\_list 2 empty) in
+let t3 = (make\_list 3 empty) in
+let t12 = (make\_list t1 (make\_list t2 empty)) in
+let t23 = (make\_list t2 (make\_list t3 empty)) in
+let ta = (make\_list t1 t23) in
+let tb = (make\_list t12 (make\_list t3 empty)) in
+let tc = (make\_list t1 (make\_list t23 empty)) in
 ;
-;sum-leaves t1 ~~> 1
-;sum-leaves t2 ~~> 2
-;sum-leaves t3 ~~> 3
-;sum-leaves t12 ~~> 3
-;sum-leaves t23 ~~> 5
-;sum-leaves ta ~~> 6
-;sum-leaves tb ~~> 6
+;sum-leaves t1 ; ~~> 1
+;sum-leaves t2 ; ~~> 2
+;sum-leaves t3 ; ~~> 3
+;sum-leaves t12 ; ~~> 3
+;sum-leaves t23 ; ~~> 5
+;sum-leaves ta ; ~~> 6
+;sum-leaves tb ; ~~> 6
+;sum-leaves tc ; ~~> 6 
 ;
-length (tail mylist)
+let add = \l r. l succ r in
+let fold = Y (\f g l z. isempty l z (g (head l)(f g (tail l) z))) in
+;
+; hint: 
+fold add mylist 0
 </textarea>
 
 <input id="PARSE" value="Normalize" type="button">