[Haskell-beginners] The Missing Arrow Function Strikes Back

Brent Yorgey byorgey at seas.upenn.edu
Wed Jun 5 15:58:49 CEST 2013


What are the types of 'split' and 'unsplit'?  It is hard to guess what
you want just from their names.

-Brent

On Wed, Jun 05, 2013 at 01:02:40PM +0800, Adrian May wrote:
> Thanks Ertugrul. In the meantime I noticed that split and unsplit are also
> missing. Is there a similar replacement for them?
> 
> Adrian.
>  On 5 Jun 2013 12:57, "Ertugrul Söylemez" <es at ertes.de> wrote:
> 
> > Adrian May <adrian.alexander.may at gmail.com> wrote:
> >
> > > I just banged up against this problem:
> > >
> > >
> > http://haskell.1045720.n5.nabble.com/The-case-of-the-missing-Arrow-function-td3125388.html
> > >
> > > Was liftA2 (not the applicative one) a bad idea, or is there another
> > > way to do it, or what?
> >
> > That liftA2 (let me call it liftA2') likely has this type signature:
> >
> >     liftA2' :: (Arrow cat)
> >                => (b -> c -> d)
> >                -> cat a b
> >                -> cat a c
> >                -> cat a d
> >
> > Does this sound familiar?  You can write this function in terms of the
> > arrow combinators:
> >
> >     liftA2' f c d = arr (uncurry f) . (c &&& d)
> >
> > However, if your arrow is also a family of applicative functors
> > (i.e. pretty much always),
> >
> >     instance Applicative (MyArrow a)
> >
> > then it's probably a bad idea, because you really want to use the
> > cleaner liftA2 instead:
> >
> >     liftA2 :: (Applicative f)
> >               => (a -> b -> c)
> >               -> f a
> >               -> f b
> >               -> f c
> >
> >
> > Greets,
> > Ertugrul
> >
> > --
> > Not to be or to be and (not to be or to be and (not to be or to be and
> > (not to be or to be and ... that is the list monad.
> >
> > _______________________________________________
> > Beginners mailing list
> > Beginners at haskell.org
> > http://www.haskell.org/mailman/listinfo/beginners
> >
> >

> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners




More information about the Beginners mailing list