Dne 28.5.2013 10:54, Dominique Devriese napsal(a):
Hi all,

I often find myself needing the following definitions:

   mapPair :: (a -> b) -> (c -> d) -> (a,c) -> (b,d)
   mapPair f g (x,y) = (f x, g y)

   mapFst :: (a -> b) -> (a,c) -> (b,c)
   mapFst f = mapPair f id

   mapSnd :: (b -> c) -> (a,b) -> (a,c)
   mapSnd = mapPair id

But they seem missing from the prelude and Hoogle or Hayoo only turn
up versions of them in packages like scion or fgl.  Has anyone else
felt the need for these functions?  Am I missing some generalisation
of them perhaps?
Apart from Arrows, there is also package "bifunctors" that defines this functionality for (,), Either and a few others:
http://hackage.haskell.org/packages/archive/bifunctors/3.2.0.1/doc/html/Data-Bifunctor.html

Petr Pudlak


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to