[Haskell-cafe] Another point-free question (>>=, join, ap)
Jeremy Shaw
jeremy at n-heptane.com
Thu Feb 12 19:04:45 EST 2009
Hello,
You could do:
(f =<< x) =<< y
?
- jeremy
At Thu, 12 Feb 2009 23:36:19 +0000,
Edsko de Vries wrote:
>
> Hi,
>
> I can desugar
>
> do x' <- x
> f x'
>
> as
>
> x >>= \x -> f x'
>
> which is clearly the same as
>
> x >>= f
>
> However, now consider
>
> do x' <- x
> y' <- y
> f x' y'
>
> desugared, this is
>
> x >>= \x -> y >>= \y' -> f x' y'
>
> I can simplify the second half to
>
> x >>= \x -> y >>= f x'
>
> but now we are stuck. I feel it should be possible to write something like
>
> x ... y ... f
>
> or perhaps
>
> f ... x ... y
>
> the best I could come up with was
>
> join $ return f `ap` x `ap` y
>
> which is not terrible but quite as easy as I feel this should be. Any hints?
>
> Edsko
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list