[Haskell-cafe] Re: request for code review
Shannon -jj Behrens
jjinux at gmail.com
Mon Mar 13 21:48:51 EST 2006
On 3/12/06, Einar Karttunen <ekarttun at cs.helsinki.fi> wrote:
> On 12.03 01:47, Shannon -jj Behrens wrote:
> > monad. Perhaps controversially, I've continued to use |> in a bunch
> > of places that the monad didn't get rid of because I think it's more
> > readable, but I'm still open for argument on this topic. Using the
>
> What about using (>>>) from Control.Arrow?
>
> > -- For convenience:
> > currTokType :: ParseContext -> TokenType
> > currTokType ctx = ctx |> currTok |> tokenType
>
> currTokType = currTok >>> tokenType
>
> > currTokValue :: ParseContext -> String
> > currTokValue ctx = ctx |> currTok |> tokenValue
>
> currTokValue = currTok >>> tokenValue
>
> > -- Create the final output string given a ParseContext.
> > consolidateOutput :: ParseContext -> String
> > consolidateOutput ctx =
> > ctx |> output |> reverse |> concat
>
> consolidateOutput = output >>> reverse >>> concat
>
> and so on.
I'm sorry, I looked at Arrow.hs, and I just don't understand. The
State monad is working just fine. I'm only using |> as a replacement
for $ because I find it more readable to read left to right than right
to left. Arrows looks like a replacement for monads. Are you saying
I should drop my use of the State monad? If so, why? I like the
readability of the do syntax. Are you saying that >>> can be used as
a reversed version of $?
Thanks for your patiences with my ignorance ;)
Thanks,
-jj
More information about the Haskell-Cafe
mailing list