On 2/4/07, Udo Stenzel <[EMAIL PROTECTED]> wrote:
J. Garrett Morris wrote:
> On 2/4/07, Udo Stenzel <[EMAIL PROTECTED]> wrote:
Well, depends on whether we are allowed to define new combinators.  I
sometimes use

-- Kleisli composition
infixl 1 @@
(@@) :: Monad m => (a -> m b) -> (b -> m c) -> (a -> m c)
f @@ g = join . liftM g . f

I was responding to this, but Dons beat me to it.  Personally, I use
this combinator quite a bit.  (As much as I would rather use >>>, the
Kleisli arrow is a bit verbose to use for my taste.)

and the resulting

> exists s = Map.lookup (sort s) @@ find (== s) . snd >>> isJust

isn't all that bad.  (To be read as: one can get used to it.)  I also
think, (@@) and (>>>) belong in the Prelude and (>>>) at type ((a->b) ->
(b->c) -> (b->c)) should be known under a shorter name.  Unfortunately,
everything short but (?) is already taken...

Presumably you mean (a -> b) -> (b -> c) -> (a -> c)?

I would personally be fine with Arrows being in the prelude (and, for
instance, (.) defined as flip (>>>)).  I'd support your shorter name
idea if I could think of one...

/g

--
It is myself I have never met, whose face is pasted on the underside of my mind.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to