[Haskell-cafe] message passing style in Monad
Simon Richard Clarkstone
simon.clarkstone at gmail.com
Sun Sep 14 14:21:19 EDT 2008
jinjing wrote:
> I found that as I can do
>
> xs.map(+1).sort
>
> by redefine . to be
>
> a . f = f a
> infixl 9 .
This looks rather like ($), but backwards. I believe the F# name for
this operator is (|>), which is also a legal name for it in Haskell.
Odd, since (|) alone isn't legal. Calling it (.) will confuse the heck
out of anyone who maintains your code though, and make any transfer of
code between your projects and other people's liable to introduce bugs.
> I can also do
>
> readFile "readme.markdown" <.> lines <.> length
>
> by making
>
> a <.> b = a .liftM b
> infixl 9 <.>
>
> Kinda annoying, but the option is there.
Now that looks more interesting. Another name for it is (>>=^), since
it is like (>>=) but lifts its right argument. I know the Fudgets
library uses "^" in operators for a similar "lifting" meaning.
--
src/
More information about the Haskell-Cafe
mailing list