AV
Size: a a a
AV
AV
ЗП
> as = [(">4", (>4)),(">5",(>5))]
> L.fold (traverse (\(t,p) -> (t,) <$> L.prefilter p L.length) as) [1..10]
[(">4",6),(">5",5)]
ЗП
groupByMonoid keyFn valFn = foldMap (\v -> MM.singleton (keyFn v) (valFn v))
groupByMonoid (\x -> if even x then "even" else "odd") (const (Sum 1)) [1..10]
MK
AA
ЗП
MK
λ> let as = [("even", even), ("odd", odd)] in M.toList $ M.fromListWith(+) $ concatMap (\i -> map (\(a, p) -> (a, if p i then 1 else 0)) as) [1,2,3,4,5]
[("even",2),("odd",3)]
AA
AV
AA
AV
AA
AV
AV
AV
АХ
AV