۱۹ - ۶تمرین‌های فصل

برای نوع‌داده‌های زیر نمونه‌های ‏‎Foldable‎‏ بنویسین.

۱.

data Constant a b =
  Constant b

۲.

data Two a b =
  Two a b

۳.

data Three a b c =
  Three a b c

۴.

data Three' a b =
  Three' a b b

۵.

data Four' a b =
  Four' a b b b

وقت فسفر سوزوندن ِه. با استفاده از ‏‎foldMap‎‏ یه تابعِ فیلتر برای تایپ‌های ‏‎Foldable‎‏ بنویسین.

filterF :: ( Applicative f
           , Foldable t
           , Monoid (f a))
        => (a -> Bool) -> t a -> f a
filterF = undefined