From 7911a8d1607b393fb1d174dbacf42b581fb368d0 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Sat, 14 Feb 2026 18:30:31 -0800 Subject: [PATCH] lab04b: WIP --- lab04/lab.lhs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lab04/lab.lhs b/lab04/lab.lhs index afb045b..58e2eb9 100644 --- a/lab04/lab.lhs +++ b/lab04/lab.lhs @@ -7,18 +7,22 @@ defined as myFoldl > myFoldl :: (a -> b -> a) -> a -> [b] -> a > myFoldl _ _ _ = error "TBD" +> myFoldl f acc [] = acc +> myFoldl f acc (x:xs) = f acc $ myFoldl f x xs Next, define a function to reverse a list using foldl. > myReverse :: [a] -> [a] -> myReverse _ = error "TBD" +> myReverse = foldl (\acc x -> x : acc) [] Now define your own version of foldr, named myFoldr > myFoldr :: (a -> b -> b) -> b -> [a] -> b > myFoldr _ _ _ = error "TBD" +> myFoldr f acc [] = acc +> myFoldr f acc (x:xs) = f x $ myFoldr f acc xs Now try using foldl (the library version, not yours) to sum up the numbers of a large list.