[Haskell-cafe] foldr (.) id

Greg Fitzgerald garious at gmail.com
Sat Oct 27 20:39:24 CEST 2012


> Alternatively: flip (foldr id)

Very cool, but...

Prelude> import qualified Data.Foldable as F
Prelude F> :t F.foldr id
F.foldr id :: F.Foldable t => b -> t (b -> b) -> b


{- Generalizing -}

Prelude F> import qualified Control.Category as C
Prelude F C> :t F.foldr (C..) C.id
F.foldr (C..) C.id :: (F.Foldable t, C.Category cat) => t (cat b b) -> cat
b b


{- Sneaky type-specialization -}

Prelude F C> :t F.foldr C.id
F.foldr C.id :: F.Foldable t => b -> t (b -> b) -> b


On Sat, Oct 27, 2012 at 3:09 AM, Ross Paterson <ross at soi.city.ac.uk> wrote:

> On Fri, Oct 26, 2012 at 07:41:18PM +0100, Greg Fitzgerald wrote:
> > I've recently found myself using the expression: "foldr (.) id" to
> > compose a list (or Foldable) of functions.  It's especially useful
> > when I need to map a function over the list before composing.  Does
> > this function, or the more general "foldr fmap id", defined in a
> > library anywhere?  I googled and hoogled, but no luck so far.
>
> Alternatively: flip (foldr id)
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20121027/2816226c/attachment.htm>


More information about the Haskell-Cafe mailing list