On Tue, May 28, 2013 at 10:54 AM, Dominique Devriese <
dominique.devri...@cs.kuleuven.be> wrote:

> 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)
>

That's Control.Arrow.(***), e.g.:

    ghci> (+3) *** (*5) $ (20,30)
    (23,150)


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

That's Control.Arrow.{first, second}:

    ghci> first (+10) (1,1)
    (11,1)
    ghci> second (+10) (1,1)
    (1,11)

G
-- 
Gregory Collins <g...@gregorycollins.net>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to