[Haskell-cafe] Plain lambda inside banana brackets in the arrow notation

Ertugrul Söylemez es at ertes.de
Fri Jul 6 11:52:44 CEST 2012


Tsuyoshi Ito <tsuyoshi.ito.2006 at gmail.com> wrote:

> How can I use combinators like repeat, which takes a plain function as
> an argument, in the arrow notation in a more readable way?  Or am I
> trying to do an impossible thing?

To answer your question:  Arrow notation has no support for what you
want, so if you stick with it you will have to write the inner proc
explicitly.

However:  The code may look much nicer, if you use applicative style for
the outer computation using Applicative, Category and Profunctor [1]:

    test2 :: MyArr [Double] String
    test2 = repeat 100 rmap . liftA3 (,,) id y z
        where
        y = arr func1
        z = job1
        rmap i = lmap (\(xs, y, z) -> xs !! i + y + z) (job3 (i * 2))

If you prefer, you can use arrow notation for the inner computation.

[1]: http://hackage.haskell.org/package/profunctors


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120706/ed6c1ea6/attachment.pgp>


More information about the Haskell-Cafe mailing list