天天看點

haskell-foldl和foldr函數實作

-- myFoldl 給定一個函數,參數a,和數組b,a按照函數規則分别對b進行處理,得到a
myFoldl :: (a -> b -> a) -> a -> [b] -> a
myFoldl f e [] = e
myFoldl f e (x : xs) = myFoldl f (f e x) xs


-- myFoldr 給定一個函數,參數a,和數組b,數組b從後往前一次對a進行函數指定的操作
-- myFoldr :: (a -> b -> b) -> b -> [a] -> b
myFoldr :: (t1 -> t2 -> t2) -> t2 -> [t1] -> t2
myFoldr f e [] = e
myFoldr f e (x : xs) = f x (myFoldr f e xs)
           

繼續閱讀