Hi Maciej
On 29 Dec 2009, at 20:52, Maciej Piechotka wrote:
On Tue, 2009-12-29 at 18:20 +0000, Conor McBride wrote:
ala AppLift foldMap
What is benefit of it over:
concatMapA f = foldr (liftA2 mappend . f) (pure mempty)
Given that applicative functors take monoids to monoids, it's
nice to exploit that property by name, rather than reconstructing
it by engineered coincidence. I reuse the "library" pattern once
(AppLift) that you reinvent in two places (liftA2 mappend)
(pure mempty).
(Ironically, foldr is defined in terms of foldMap by code that
amounts to, modulo a flip,
ala Endo foldMap
appealing to the monoid of endomorphisms.)
The result is an operation which
(a) points out the essential mechanism, foldMap;
(b) points out the structures on which it works, lifted monoids;
(c) is short enough not to bother naming.
More structure, less code,
Conor
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe