Re: Applicative-based definitions in Data.Foldable

24 Jan
2019
24 Jan
'19
6:04 a.m.
I used `anyA` today, to run predicates on things contained in IORefs.
On Fri, Dec 21, 2018 at 10:37 AM Isaac Elliott
With the introduction of the 'Ap' monoid in base-4.13, it seems like Applicative based definitions for common folds would be appropriate in base.
For example:
allA :: (Applicative f, Foldable t) => (a -> f Bool) -> t a -> f Bool allA f = fmap getAll . getAp . foldMap (Ap . fmap All . f)
all :: Foldable t => (a -> Bool) -> t a -> Bool all f = runIdentity . allA (Identity . f)
I've personally written the Applicative version in everyday code. Thoughts?
Isaac
2308
Age (days ago)
2308
Last active (days ago)
0 comments
1 participants
participants (1)
-
Isaac Elliott