X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=assignment_3_evaluator.mdwn;h=c4032ee37c7f1ec456a09f7ed5a88093f932bd64;hp=f4f5fb929b3fa5b70d3fe27a0b9d77dde81a7170;hb=d50ce29231fc7454463b0a1b7b898022db6b67d1;hpb=d7c9144dc2558e867db336c1c36961fb0d19fdad diff --git a/assignment_3_evaluator.mdwn b/assignment_3_evaluator.mdwn index f4f5fb92..c4032ee3 100644 --- a/assignment_3_evaluator.mdwn +++ b/assignment_3_evaluator.mdwn @@ -48,7 +48,7 @@ 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 tb = (make\_list t12 (make\_list t3 empty)) in let tc = (make\_list t1 (make\_list t23 empty)) in ; ;sum-leaves t1 ; ~~> 1 @@ -58,8 +58,13 @@ let tc = (make\_list t1 (make\_list t23 empty)) in ;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