duet/examples/folds.hs
2019-11-15 23:56:56 +01:00

14 lines
295 B
Haskell

data List a = Nil | Cons a (List a)
foldr = \f z l ->
case l of
Nil -> z
Cons x xs -> f x (foldr f z xs)
foldl = \f z l ->
case l of
Nil -> z
Cons x xs -> foldl f (f z x) xs
list = (Cons True (Cons False Nil))
main_foldr = foldr _f _nil list
main_foldl = foldl _f _nil list